我用绘制在x轴上分类变量和在y轴上的数值变量的曲线图。
对于x轴,因为有很多的数据点,默认的文本格式使每个刻度线与其它标签重叠的标签。 我如何(一)更改字体大小为我的坐标轴文本和(b)改变文字的方向,使文本垂直于轴线?
我用绘制在x轴上分类变量和在y轴上的数值变量的曲线图。
对于x轴,因为有很多的数据点,默认的文本格式使每个刻度线与其它标签重叠的标签。 我如何(一)更改字体大小为我的坐标轴文本和(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
。
同上@Drew斯蒂恩上使用的theme()
这里是轴的文字和标题共同的主题属性。
ggplot(mtcars, aes(x = factor(cyl), y = mpg))+
geom_point()+
theme(axis.text.x = element_text(color = "grey20", size = 20, angle = 90, hjust = .5, vjust = .5, face = "plain"),
axis.text.y = element_text(color = "grey20", size = 12, angle = 0, hjust = 1, vjust = 0, face = "plain"),
axis.title.x = element_text(color = "grey20", size = 12, angle = 0, hjust = .5, vjust = 0, face = "plain"),
axis.title.y = element_text(color = "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))
添加到以前的解决方案,你也可以指定字体大小相对于 base_size
纳入主题,如theme_bw()
其中base_size
使用的是11), rel()
函数。
例如:
ggplot(mtcars, aes(disp, mpg)) +
geom_point() +
theme_bw() +
theme(axis.text.x=element_text(size=rel(0.5), angle=90))
使用“填充”属性有助于这样的情况下。 可以使用从轴删除文本element_blank()
并显示多色条形图用图例。 我在一家维修店,如下绘制的一部分去除频率
ggplot(data=df_subset,aes(x=Part,y=Removal_Frequency,fill=Part))+geom_bar(stat="identity")+theme(axis.text.x = element_blank())
我去了我的情况下,这个解决方案,因为我曾在条形图许多酒吧和我没能找到一个合适的字体大小这是可读可也足够小,不会相互重叠。
当使得许多情节,是有意义的设置全局(相关部分是二线,三线一起工作示例):
library('ggplot2')
theme_update(text = element_text(size=20))
ggplot(mpg, aes(displ, hwy, colour = class)) + geom_point()