我正在创建一个并排显示两个框图的图表,并且我试图缩放图中的文本,这给了我一些问题。我已经解决了问题,所以现在我想我只是想了解后台发生了什么。
可以下载数据here。 (42 MB)
一个非常基本的情节:
ggplot(perdiffm, aes(variable, value)) + stat_boxplot(geom = 'errorbar') + geom_boxplot()
现在是一个带有适当标签和文字大小的图:
ggplot(perdiffm, aes(variable, value)) + stat_boxplot(geom = 'errorbar') + geom_boxplot() + scale_x_discrete(labels = c('% Difference A', '% Difference B')) + labs(title = "Percent difference between meters", y = '% Difference') + theme(text = element_text(size = rel(5)), axis.title.x = element_blank(), panel.grid.major.x = element_blank())
注意情节标题!!我不明白为什么会这样,但这是我的解决方案:
ggplot(perdiffm, aes(variable, value)) + stat_boxplot(geom = 'errorbar') + geom_boxplot() + scale_x_discrete(labels = c('% Difference A', '% Difference B')) + labs(title = "Percent difference between meters", y = '% Difference') + theme(text = element_text(size = 20), axis.title.x = element_blank(), panel.grid.major.x = element_blank())
基本上只是将text_element(size = rel(5))
更改为text_element(size = 20)
(正如罗兰所建议的)
所以我的问题是:为什么我必须明确地编码标题的文本大小???为什么text = element_text(size = rel(5))
不能使用标题? (我猜两个问题,但他们几乎都问同样的事情)
如果我做错了(非常可能)以及将来如何避免这件事,请告诉我。
谢谢!
答案 0 :(得分:1)
根据文件plot.title
继承自title
继承自text
。所以这看起来像个错误。
增加所有文本大小的规范方法是在主题中设置基本大小。这会保留所有元素的相对文本大小。
情节(不下载您的大数据集,与您的问题无关):
p <- ggplot(mtcars, aes(factor(cyl), mpg))
p +
geom_boxplot() +
ggtitle("Boxplot")
增加基本尺寸:
p +
geom_boxplot() +
ggtitle("Boxplot") +
theme_grey(base_size = 20) #default is 12