web-dev-qa-db-ja.com

facet_gridプロットのストリップテキストを操作するにはどうすればよいですか?

ファセットプロットでストリップテキストのサイズをどのように操作できるか疑問に思っています。私の質問は プロットタイトルに関する質問 に似ていますが、特にプロットタイトルではなく、ファセットタイトル(strip_h)に表示されるテキストの操作に関心があります。

例として、mpgデータセットを考えます。

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

結果の output は、ストリップに収まらないファセットタイトルを生成します。

ストリップテキストを処理するためにgridを使用する方法がなければならないと考えています。しかし、私はまだ初心者であり、 Hadleyの本grid付録からはわかりませんでした。また、間違ってやると洗濯機が壊れるのではないかと心配しました。すべての技術はフォースでつながっていると思うからです:-(

事前に感謝します。

80
briandk

たとえば、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))
110
rcs

最近ではoptstheme_textは非推奨のようです。 Rは、themeおよびelement_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))
26
moi

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)
3
G Chalancon