在ggplot2中更改轴文本的字体大小和方向
我正在用x轴上的分类variables和y轴上的数字variables绘制图表。
对于x轴,假设有许多数据点,默认的文本格式会使每个刻度标记的标签与其他标签重叠。 我如何(a)更改我的轴文本的字体大小和(b)更改文本的方向,使文本垂直于轴?
使用theme()
:
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10)) ggplot(d, aes(x=x, y=y)) + geom_point() + theme(text = element_text(size=20), axis.text.x = element_text(angle=90, hjust=1)) #vjust adjust the vertical justification of the labels, which is often useful
有很多关于如何在这里格式化你的ggplots的很好的信息。 你可以看到使用?theme
可以修改的参数的完整列表(基本上都是)。
Ditto @Drew Steen使用theme()
。 以下是轴文本和标题的常用主题属性。
ggplot(mtcars,aes(x=factor(cyl),y=mpg))+ geom_point()+ theme(axis.text.x = element_text(colour="grey20",size=20,angle=90,hjust=.5,vjust=.5,face="plain"), axis.text.y = element_text(colour="grey20",size=12,angle=0,hjust=1,vjust=0,face="plain"), axis.title.x = element_text(colour="grey20",size=12,angle=0,hjust=.5,vjust=0,face="plain"), axis.title.y = element_text(colour="grey20",size=12,angle=90,hjust=.5,vjust=.5,face="plain"))
使用主题():
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10)) ggplot(d, aes(x=x, y=y)) + geom_point() + theme(text = element_text(size=20))
使用“填充”属性有助于这样的情况。 您可以使用element_blank()
从轴上删除文本,并用图例显示多色条形图。 我正在绘制一个维修店的部分拆除频率如下
ggplot(data=df_subset,aes(x=Part,y=Removal_Frequency,fill=Part))+geom_bar(stat="identity")+theme(axis.text.x = element_blank())
在我的情况下,我去了这个解决scheme,因为我有很多酒吧在条形图,我无法find一个合适的字体大小,这是可读的,也足够小,不能相互重叠。
除了以前的解决scheme之外,还可以使用rel()
函数指定相对于theme_bw()
(其中base_size
为11)等主题中包含的base_size
的字体大小。
例如:
ggplot(mtcars, aes(disp, mpg)) + geom_point() + theme_bw() + theme(axis.text.x=element_text(size=rel(0.5), angle=90))