如何操作facet_grid图的条带文本?

时间:2010-05-01 18:23:40

标签: r ggplot2

我想知道如何在刻面图中操纵条带文本的大小。我的问题 类似于a question on plot titles,但我特别关注 操纵不是标题标题,而是出现在标题标题中的文本(strip_h)。

例如,考虑mpg数据集。

    library(ggplot2) 
    qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)

生成的output会生成一些不适合条带的构面标题。

我认为必须有一种方法可以使用grid来处理条带文本。但是我 还是一个新手,并且不确定Hadley's book中的grid附录如何, 确切地说,要做到这一点。此外,我担心如果我做错了会破坏我的洗涤 机器,因为我相信所有技术都通过原力连接: - (

非常感谢提前。

3 个答案:

答案 0 :(得分:106)

您可以使用strip.text.x修改strip.text.y(或theme_text()),例如

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      opts(strip.text.x = theme_text(size = 8, colour = "red", angle = 90))

更新:适用于ggplot2版本> 0.9.1

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))

答案 1 :(得分:26)

现在似乎不推荐使用optstheme_text。 R建议使用themeelement_text。可以在此处找到答案的解决方案:http://wiki.stdout.org/rcookbook/Graphs/Facets%20%28ggplot2%29/#modifying-facet-label-text

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))

答案 2 :(得分:3)

我想在mpg更改旋转角度和字体大小的示例中很好,但在很多情况下,您可能会发现自己的变量具有相当长的标签,并且它可能会变成颈部疼痛(从字面上看)尝试阅读旋转冗长的标签。

因此,对于改变角度和大小的补充(或补充),我通常会重新格式化定义facet_grid的因子的标签,只要它们能够以合理的方式分割。

通常情况下,如果我的dataset$variable字符串看起来像

c("median_something", "aggregated_average_x","error","something_else")

我只是这样做:

reformat <– function(x,lab="\n"){ sapply(x, function(c){ paste(unlist(strsplit(as.character(c) , split="_")),collapse=lab) }) }

[也许对reformat有更好的定义,但至少这一个工作正常。]

dataset$variable <- factor(dataset$variable, labels=reformat(dataset$variable, lab='\n')

在刻面时,所有标签都非常易读:

ggplot(data=dataset, aes(x,y)) + geom_point() + facet_grid(. ~ variable)