2013-07-25 41 views
0

我正在创建一个图表,并排显示两个箱形图,并且我试图缩放剧情内的文本,这是给我的问题。我已经解决了问题,所以我想现在我只是想了解后台发生了什么。为什么在缩放带有主题(text = element_text())的文本大小时,绘图标题不能正确缩放?

该数据可以下载here。 (42 MB)

一个非常基本的情节:

ggplot(perdiffm, aes(variable, value)) + stat_boxplot(geom = 'errorbar') + geom_boxplot() 

enter image description here

现在有了正确的标签和文本大小一个情节:

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

enter image description here

通知情节标题!!我不明白,为什么出现这种情况,但这里是我的解决方案:

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)(正如罗兰建议)

enter image description here

所以我的问题是:为什么我必须明确地编码标题的文字大小?为什么text = element_text(size = rel(5))不适用于标题? (我想两个问题,但他们几乎要求同一件事)

请让我知道如果我做错了什么(很可能),以及如何避免它在未来。

谢谢!

回答

1

根据文档plot.title继承自title,其继承自text。所以这看起来像一个错误。

增加所有文本大小的规范方法是在主题中设置基本大小。这保留了所有元素的相对文本大小。

的曲线(无需下载你的大数据集,这是完全无关的问题):

p <- ggplot(mtcars, aes(factor(cyl), mpg)) 

p + 
    geom_boxplot() + 
    ggtitle("Boxplot") 

enter image description here

增加底座尺寸:

p + 
    geom_boxplot() + 
    ggtitle("Boxplot") + 
    theme_grey(base_size = 20) #default is 12 

enter image description here

+0

谢谢罗兰,如果我不把文字大小设置为相对的话e('size = rel(5)')我可以在'theme'内用'text = element_text(size = 20)'正确设置大小,所以不需要添加'base_size'命令。 – amzu