更改 ggplot2 中 x 轴的断点

9
我试图将x轴设置为实际年份,而不是让ggplot2将其分成半个年份。我该如何将特定的x轴设置为年份?
dput:
df <- structure(list(year = c(1930, 1931, 1932, 1933, 1934, 1935, 1936, 
1937, 1938, 1939, 1940), ppt = c(59.0033808749924, 64.5812917950552, 
66.5926177672304, 59.4756152030825, 54.7584384173037, 73.2530022881949, 
52.152143860761, 62.667460409034, 68.3809388906197, 57.8704092161023, 
62.8957857266413), anom = c(0.820287105396386, 0.897833312663238, 
0.925795519832683, 0.826852283938926, 0.761272325064239, 1.01839068062701, 
0.725038641741477, 0.871226511754963, 0.950657430049865, 0.804536108948638, 
0.874400775857991)), row.names = c(NA, -11L), class = c("tbl_df", 
"tbl", "data.frame"), .Names = c("year", "ppt", "anom"))

代码:

qplot(year, anom, data = df, geom="smooth", main = "Precipitaion ", ylab = "Anomaly", xlab = "", scale_x_continuous(breaks=seq(1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940), labels = c("1930", "1931", "1932", "1933", "1934", "1935", "1936", "1937", "1938", "1939", "1940")))

输出:

在这里输入图片描述


这是一个输出示例,其中包含一个指向图片的链接。

选项1:将它们转换为因子; 选项2:将它们转换为字符; 选项3:将它们转换为实际的“日期”。 - hrbrmstr
由于年份是数字,您可以像这样设置间断点:ggplot(df, aes(year, anom)) + geom_smooth() + scale_x_continuous(breaks=seq(1930,1940,2))。我将主要间隔设置为2,但您当然可以根据需要进行设置。 - eipi10
1个回答

19

这段代码应该可以工作。

grp = ggplot(df,aes(x=year,y=anom)) +
      geom_smooth() +
      labs(title="Precipitaion", y="Anomaly", x = "")
grp + scale_x_continuous(breaks=seq(1930, 1940, 1))

seq 的语法是 seq(start,end,step-by)

图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接