我有一个df:
Year Ratio N Mean sd se ci
97 1867 TILLBANK...PLACTILL 2 3.861999 4.082170 2.886530 36.67685
98 1867 TILLOBL..PLACTILL 2 21.848833 17.859532 12.628596 160.46153
99 1867 TILLLOAN.PLACTILL 2 54.197044 23.309360 16.482207 209.42629
100 1867 TILLEQUI.PLACTILL 2 0.000000 0.000000 0.000000 0.00000
101 1867 TILLCONT.PLACTILL 2 0.000000 0.000000 0.000000 0.00000
102 1867 TILLRECI.PLACTILL 2 10.772286 5.110514 3.613679 45.91615
str(df) :
'data.frame': 1152 obs. of 7 variables:
$ Year : Factor w/ 156 levels "1855","1856",..: 13 13 13 13 13 13 13 13 14 14 ...
$ Ratio: Factor w/ 8 levels "TILLBANK...PLACTILL",..: 1 2 3 4 5 6 7 8 1 2 ...
$ N : num 2 2 2 2 2 2 2 2 2 2 ...
$ Mean : num 3.86 21.85 54.2 0 0 ...
$ sd : num 4.08 17.86 23.31 0 0 ...
$ se : num 2.89 12.63 16.48 0 0 ...
$ ci : num 36.7 160.5 209.4 0 0 ...
1)我正在做一个ggplot
:
qqs<-ggplot(dfccomp, aes(x=Year, y=sd,colour=Ratio))+geom_point()+
facet_grid(Ratio~.)+
theme(axis.text.x = element_text(angle=-90, hjust=0.5, size=11,colour="black"))
这个情节适用于geom_point()
但现在适用于geom_line()
. 如果我使用geom_point()
,那么多年来(从 1867 年到 2010 年),x 轴都会变得非常混乱:
如果我使用geom_line()
, 不起作用,我会得到:
所以,我想知道如何只选择某些特定年份出现在 x 轴上?
2)我不明白的另一件奇怪的事情是,如果我将df$Year
上面的内容转换为数字,
df$Year=as.numeric(as.character(df$Year))
情节是:
现在,x 轴上只有 3 年。哪个更好,但仍然不是我想要的......
为什么两者都geom_point()
有效geom_line()
?
更新:在下面的答案中,我读到“年份是一个因素,因此 ggplot() 将相应地解释它并产生一个点图。geom_line() 没有做任何事情的原因是这个 geom 对数据没有意义提供;因子性质向 ggplot() 表明 x 轴是不连续的,并且在该轴上的点之间没有可以绘制的内容,因此没有线。”。
但我有一个不同的情节,其中geom_line()
有一个因素。为什么会这样?
qq<-ggplot(df, aes(x=Year, y=Mean,colour=Ratio)) +
geom_errorbar(aes(ymin=Mean-sd, ymax=Mean+sd), colour="black", width=.1, position=position_dodge(.1)) +
geom_line(position=position_dodge(.1)) +
geom_point(position=position_dodge(.1), size=3, shape=21, fill="white") + # 21 is filled circle
xlab("Year") +
ylab("Mean (%)")+ggtitle("Ratios")+facet_grid(Ratio~.)+theme(axis.text.x = element_text(angle=-90, hjust=0.5, size=11,colour="black"))
图片: