【发布时间】:2016-05-10 21:31:12
【问题描述】:
我有一个小数据集,我在下面复制了它。它在行中有客户,在列中有每月的数量。两周前我正在使用 ggplot2 绘制它,并且效果很好。但是现在,时间段(x 轴)没有正确排序。期间“P_10”在“P_1”之后,应该是“P_2”。
前几行创建的数据与我的真实数据格式相同,所以我不想创建不同的数据。
我的第一个问题是:为什么这两周前有效,而现在却无效?上周更新了几个包,我猜有些改变了。
其次,(更重要的是)我该如何解决这个问题?
library(dplyr)
library(tidyr)
library(ggplot2)
# create data
a = paste("p_",1:20,sep = "")
b = paste("c",1:6,sep = "")
mydata2 = data.frame(matrix(rnorm(20),6,20))
names(mydata2) = a
mydata2$cust = b
mydata2 = mydata2[,c(ncol(mydata2),1:(ncol(mydata2)-1))]
# plot data
p_data = mydata2 %>% gather(period,Qty,-cust)
pl=(ggplot(data=p_data,aes(x=period,y=Qty,group=cust,colour=cust)) +
geom_line(size=.4))
# display plot
pl
【问题讨论】:
-
看起来你的 x 变量是一个因素。
-
当我绘制您的数据时,x 轴按 p_1、p_2、... p_20 排序,所以这是您想要的结果? ggplot2 版本为 2.0.0
-
我也在使用 ggplot2 2.0.0,虽然句点列是
character,但我可以重现错误排序的 x 轴。 -
嗨,我正在使用 ggplot 2.0.0(自 12 月下旬以来)。我使用了几个包(并欣赏它们!),也许另一个包中的更新改变了数据呈现给 ggplot2 的方式?感谢您的帮助!
标签: r plot ggplot2 time-series dplyr