我想为我的数据表
dt
创建一个按 acquiYear
分组的直方图,其中 y 轴代表 nrOrders
,x 轴代表 month
。我的数据表如下所示:
structure(list(acquiYear = c("2014", "2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2015", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2016", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2017", "2017",
"2017", "2017", "2017", "2017", "2017", "2017", "2017", "2017",
"2017", "2017", "2018", "2018", "2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018"), month = structure(c(1L, 2L, 3L, 4L,
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L,
8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L,
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L), .Label = c("Jan",
"Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
"Nov", "Dec"), class = "factor"), nrOrders = c(0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 0, 2, 4, 5, 3, 7, 3, 5, 4, 3, 7, 8, 7, 2, 24,
16, 33, 9, 27, 16, 10, 27, 9, 31, 35, 11, 11, 25, 15, 18, 19,
19, 8, 27, 34, 43, 51, 0, 11, 2, 0, 0, 0, 0, 0, 4, 5, 1, 0),
), row.names = c(NA, -60L), class = c("data.table",
"data.frame"))
我需要为每个
month
每个acquiYear
一个酒吧,并为几个月内的每个acquiYear
一条密度线。
年份的颜色应该是c("#00943C", "#4A52A0", "#FDC300", "#6F6F6F", "#EC4C24")
。
我该如何解决这个问题?
问题是您所描述的是不是直方图。您似乎正在寻找躲避条形图。也许是这样的:
ggplot(df, aes(month, nrOrders, fill = acquiYear)) +
geom_col(position = 'dodge') +
xlab("Month") +
ylab("Nr. of Orders") +
ggtitle(paste("Delivery year 2018")) +
theme_classic() +
theme(plot.title = element_text(face = "bold", hjust = 0.5)) +
theme(axis.title = element_text(face = "bold")) +
scale_fill_manual(values = c("#00943C", "#4A52A0", "#FDC300",
"#6F6F6F", "#EC4C24"))
为每年添加密度曲线在这里没有任何意义。密度曲线显示连续范围内单个变量的测量值密度,而条形图已完全描述了等间隔的测量值。您可以为每年添加一条平滑的曲线,但绘图已经很复杂,并且曲线不会添加任何信息;事实上,它们会掩盖你的绘图已经显示的数据。