我正在使用ggplot
创建具有面积填充值的多面板图。我想完全以最大x值(年)截取该图,并仍标记该年。当我指定精确值时,它不会显示最终值(当左侧显示breaks
设置的值2001、2005和2010时的结果)。我还想指定设置哪些刻度值(默认值没有意义,请参见右侧的打印输出示例),并且我已将轴刻度标签设置为在x轴上包括最后一个值,但不能完全打印(在绘图区域的边缘被切除)。我如何在中断设置时让ggplot显示最后一个值?下面显示的虚拟示例代码如下。
编辑:更正了代码中的2001、2005、2010中断(不是2100)。
set<-data.frame(year=c(2001:2010), values=c(1:10))
g1<-ggplot(set, aes(x=year,y=values))+
geom_area(data=set)+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line = element_line(colour = "black"))+
scale_x_continuous(expand=c(0, 0), breaks=c(2001, 2005, 2010)) + #label at 25-year intervals
scale_y_continuous(expand = c(0, 0))
g2<-ggplot(set, aes(x=year,y=values))+
geom_area(data=set)+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line = element_line(colour = "black"))+
scale_x_continuous(expand=c(0, 0)) + #label at 25-year intervals
scale_y_continuous(expand = c(0, 0))
ggarrange(g1, g2, nrow=1, ncol=2)
也感谢@Tjebo的建议...固有的问题在于您的breaks
自变量包含错字:)。使用2010
而不是2100
应该可以正常工作。哎呀!
但是,expand=c(0,0)
的使用往往会由于标签超出范围而导致切断轴刻度标签。解决办法?只需扩展“界限”即可。在这里,您应该使用theme(plot.margin=...
略微增加页边距。 Some information can be found here to guide you,但实际上只是在边距旁玩,注意格式通常为theme(plot.margin = margin(t, r, b, l, unit))
其中:t,r,b和l分别表示“顶部”,“右侧”,“底部”和“左侧”,单位可以是几件事情(在这里我建议使用“点”)。话虽如此,我发现这适用于左侧情节的示例案例:
theme(plot.margin = margin(10,15,10,10, "points")