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

tktrz96b  于 2022-12-20  发布在  其他
关注(0)|答案(3)|浏览(181)

我想知道如何在刻面图中控制条形文本的大小,我的问题类似于a question on plot titles,但我特别关注的不是控制图标题,而是控制刻面标题中出现的文本(strip_h)。
例如,考虑mpg数据集。

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

生成的output生成了一些不适合条带的面标题。
我想一定有一种方法可以使用grid来处理strip文本,但我还是一个新手,从Hadley's bookgrid附录中还不确定如何精确地做到这一点。

flvlnr44

flvlnr441#

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

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))
63lcw9qa

63lcw9qa2#

现在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))
sqougxex

sqougxex3#

我想在mpg的例子中,改变旋转Angular 和字体大小是可以的,但是在许多情况下,您可能会发现自己使用的变量具有相当长的标签,并且尝试读取旋转后的冗长标签可能会成为一件痛苦的事情。
因此,除了改变Angular 和大小之外(或补充),我通常会重新格式化定义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)

相关问题