我希望从销售数据中提取日历月,并将结果绘制到条形图上。
使用dplyr和lubridate,我通过编码SalesMonth = as.factor(month(SaleDate)来创建一个新变量SalesMonth作为因子。该返回值1-12可以在barplot上绘制。
对于最后的绘图,我想显示值JFMAMJJASOND而不是1-12。这可能吗?我应该如何处理-在dplyr数据准备步骤中,还是直接在ggplot中标记值?
我已经查看了对因子声明的应用级别以及使用month.abb的方法,但是它不起作用。具体来说,我只想使用第一个字母,所以如果我尝试创建一个因子,将会有重复(3 Js,2 As,2 Ms)。
答案 0 :(得分:1)
如果您的月份值为numeric
,则可以在绘图阶段通过修改标签来实现。在您的ggplot
中添加以下内容:
+ scale_x_continuous(breaks = 1:12,
labels = c('J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'))
如果它们不是数字,则可以在绘制之前简单地使用as.numeric()
对其进行转换...,或者直接从原始代码中删除因子转换。
答案 1 :(得分:0)
factor(SalesMonth, levels = c("Ja","F","Mar","A","M",
"Ju","Jl","A","S","O","N","D"))
如果您使用唯一的缩写,它将保留ggplot的顺序