我有一个名为Finalcombined的数据框,其中包括季度(2004年第一季度到2013年第四季度)和Labourproductivity。
quarter LabourProductivity
==========================
2004 Q1 96.6
2004 Q2 96.9
2004 Q3 96.9
2004 Q4 97.1
2005 Q1 97.6
labourproductivitygraph <- ggplot(data=Finalcombined, aes(x=quarter, y=LabourProductivity))+geom_line(colour="black", size=0.5) +
labs(x="Time[Quarter]", y=("Labour Productivity")) +
theme(panel.grid.major = element_line(colour = "white", size=0.50),
panel.grid.minor = element_line(colour = "white", size=0.16)) +
theme(axis.text=element_text(size=16), axis.title=element_text(size=16,face="bold")) +
geom_point(colour="black", size=2, shape=16) +
geom_smooth(method=lm, se=TRUE, col="blue", size=0.70, alpha=0.40, aes(group=1))
labourproductivitygraph
运行此代码后,我收到以下错误:
geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?
非常感谢任何帮助!
答案 0 :(得分:0)
这里的问题是你的X变量不是ggplot识别为连续的格式。因为它看到&#34; Q1 2004&#34;,例如,作为字符串,X变量被解释为一个因子。这解释了你得到的错误 - 它看起来像ggplot那样试图对一堆只有一个值的组进行统计,这通常不是人们想要做的事情。
所以要解决这个问题,你需要将X变量转换为ggplot识别为连续的东西。这可以是日期或一系列数字。假设您有每季度的数据,最简单的做法可能是使用从1到数据帧长度的占位符序列。您可以将此序列用作X变量,并使用quarter变量标记沿X轴的刻度。这是一些示例代码:
Finalcombined$sequence <- c(1:length(Finalcombined$quarter))
labourproductivitygraph <- ggplot(data=Finalcombined, aes(x=sequence, y=LabourProductivity))+geom_line(colour="black", size=0.5) + labs(x="Time[Quarter]", y=("Labour Productivity")) + theme(panel.grid.major = element_line(colour = "white", size=0.50), panel.grid.minor = element_line(colour = "white", size=0.16)) + theme(axis.text=element_text(size=16), axis.title=element_text(size=16,face="bold")) + geom_point(colour="black", size=2, shape=16) + geom_smooth(method=lm, se=TRUE, col="blue", size=0.70, alpha=0.40) + scale_x_continuous(labels=quarter)
labourproductivitygraph
这能解决您的问题吗?