在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))