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

bri*_*ndk 83 r ggplot2

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

例如,考虑mpg数据集.

    library(ggplot2) 
    qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)
Run Code Online (Sandbox Code Playgroud)

结果输出会生成一些不适合条带的构面标题.

我认为必须有一种方法grid来处理条带文本.但我仍然是一个新手,并且不确定哈德利书中grid附录是如何做到的.此外,我担心如果我做错了会破坏我的洗衣机,因为我相信所有的技术都通过The Force连接:-(

提前谢谢了.

rcs*_*rcs 116

您可以修改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))
Run Code Online (Sandbox Code Playgroud)

更新:对于ggplot2版本> 0.9.1

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


moi*_*moi 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))
Run Code Online (Sandbox Code Playgroud)


G C*_*con 6

我想在mpg更改旋转角度和字体大小的示例中很好,但是在许多情况下,您可能会发现自己的变量具有很长的标签,并且尝试阅读旋转的冗长标签可能会让人头疼(字面意思) .

因此,除了(或补充)改变角度和大小之外,我通常会重新格式化定义因子的标签,facet_grid只要它们可以以一种有意义的方式进行拆分。

通常,如果我有一个dataset$variable看起来像的字符串

c("median_something", "aggregated_average_x","error","something_else")
Run Code Online (Sandbox Code Playgroud)

我只是这样做:

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

[也许有更好的定义,reformat但至少这个定义很好。]

dataset$variable <- factor(dataset$variable, labels=reformat(dataset$variable, lab='\n')
Run Code Online (Sandbox Code Playgroud)

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

ggplot(data=dataset, aes(x,y)) + geom_point() + facet_grid(. ~ variable)
Run Code Online (Sandbox Code Playgroud)