ggplot2で凡例のタイトルを変更するにはどうすればよいですか?[閉まっている]


58

2 x 4 x 3セルデータセットからのデータを要約するために、ggplot2で作成しているプロットがあります。を使用して2レベル変数のパネルを作成しfacet_grid(. ~ Age)、を使用してx軸とy軸を設定できましたaes(x=4leveledVariable, y=DV)。私aes(group=3leveledvariable, lty=3leveledvariable)はこれまでプロットを作成していました。これにより、2レベル変数でパネル化された視覚化が提供されます。X軸は4レベル変数を表し、3レベル変数のパネル内に異なる線がプロットされます。しかし、3レベル変数のキーには3レベル変数の名前が付けられており、文字スペースを含むタイトルにしたいです。凡例のタイトルの名前を変更するにはどうすればよいですか?

私が試したものはうまくいかないようです(abp私のgpgplot2オブジェクトはどこですか):

 abp <- abp + opts(legend.title="Town Name")
 abp <- abp + scale_fill_continuous("Town Name")
 abp <- abp + opts(group="Town Name")
 abp <- abp + opts(legend.title="Town Name")

サンプルデータ:

ex.data <- data.frame(DV=rnorm(2*4*3), V2=rep(1:2,each=4*3), V4=rep(1:4,each=3), V3=1:3)

2
@drknexus-データを共有できる場合、それは役立ちます。または、データと同じ形状を持つR内の同様のデータセットを指します。
チェイス

1
ここの誰もが非常に知識があるように思えますが、ggplotに関連する質問については、Googleグループが非常に役立つことを知っています。 groups.google.com/group/ggplot2
Dason

Hadleyのページにあるよく知られた優れたドキュメントに加えて、Git Hubに関するあまり知られていないリファレンスは、この種の問題に本当に役立ちます。
hans0l0

または、theme_get()コンソールで同じ参照を提供します。
ブランドンバーテルセン

1
SO移行を要求するいくつかのフラグに応じて、実際には不可能です。:なぜSO.metaで見るmeta.stackexchange.com/q/8004/150510meta.stackexchange.com/q/151890/150510を
chl

回答:


25

別のオプションは使用することです

p + labs(aesthetic='custom text')     

たとえば、Chaseの例は次のようになります。

library(ggplot2)

ex.data <- data.frame(DV=rnorm(2*4*3),V2=rep(1:2,each=4*3),V4=rep(1:4,each=3),V3=1:3)
p <- qplot(V4, DV, data=ex.data, geom="line", group=V3, linetype=factor(V3)) + facet_grid(. ~ V2)
p + labs(linetype='custom title')

図を生成します。 ここに画像の説明を入力してください


最近は、スケール/軸ごとにラベルを指定するよりも、labs()を使用してラベルを変更する傾向があります。
ラッセルピアス

38

凡例のスケールを変更することにより、凡例のタイトルを変更できます。CO2データセットを使用した例を次に示します

library(ggplot2)

p <- qplot(conc, uptake, data = CO2, colour = Type) + scale_colour_discrete(name = "Fancy Title")
p <- p + facet_grid(. ~ Treatment)
p 

編集:

上記のサンプルデータを使用して、ここに実用的なソリューションを示します。これは、@ drknexusが作成しようとしているプロットを模倣していると思います。補足として、V3を凡例にマッピングするための要因としてV3を処理する必要がある理由を説明できる人がいれば、感謝します。

p <- qplot(V4, DV, data = ex.data, geom = "line", group = V3, lty = factor(V3)) 
p <- p + scale_linetype_discrete(name = "Fancy Title") + facet_grid(. ~ V2)
p 

代替テキスト


私が不足しているのは、ggplot(data = ex.daata、aes(x = V4、y = DV、group = V3、lty = V3 ))
ラッセルピアス

1
ああ、私はそれを見つけました:scale_linetype_discrete(name = "bob")
russellpierce

@Chase:scale_linetype_discreteビットを使用して編集すると、回答を受け入れます。
russellpierce

1
@drknexus-それに関する問題は私の作業例にあり、適切なコマンドはscale_colour_discrete()あり、作業しているコードは明らかに少し異なります。そのコードが何なのかわかりません
追跡

3
@Chase Re:「なぜV3を因子として扱わなければならないのか」scale_linetype_discreteは、離散値(因子または文字、from plyr::is.discrete)を持つ変数を想定しています。Githubの srcコードj.mp/ejaRRTを確認してください。いい反応(+1)。
-chl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.