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


100

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

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

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

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

私はgridストリップテキストを処理するために使用する方法があるに違いないと思います。しかし、私はまだ初心者でありgridハドリーの本の付録から、正確にそれを行う方法がわかりませんでした。また、私が間違っていると、洗濯機が壊れてしまうのではないかと心配しました。

よろしくお願いします。

回答:


134

たとえば、を使用して変更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とてもいい。x軸の注釈も改善する方法はありますか?
George Dontas、

ありがとうrcs。私はgd047を使っていますが、おそらくそれは別の質問でしょうか?あなたが気づいているのは、主要なx値の混雑です。主X軸とY軸の目盛りの値を手動で設定する方法があるはずですが、それが何であるか思い出せません:-(
briandk

@ gd047:axis.text.x=theme_text(...)
rcs

1
このQのリンクはやや参考になるはずです:stackoverflow.com/questions/2258784/list-of-ggplot2-options
RomanLuštrikMar


6

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)

1
たぶんこのようなものが良いでしょう:levels(birds $ effect)<-gsub( ""、 "\ n"、levels(birds $ effect))
dca
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.