以下のようなプロットがあります。それはこのコマンドで作成されました:
library(ggplot2)
df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)),
rating = c(rnorm(200), rnorm(200, mean=.8)))
ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
次に私がやりたいことは 凡例のタイトル から cond を に変更することです LEGEND TITLE - /。
それで私がしたのは単に次の行を追加して上記のコードの最後を追加することです:
+labs(colour="NEW LEGEND TITLE")
しかし、うまくいきません。それをする正しい方法は何ですか?
これはうまくいくはずです。
p <- ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha=.3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
p <- p + guides(fill=guide_legend(title="New Legend Title"))
(あるいは)
p + scale_fill_discrete(name = "New Legend Title")
あまり詳しく説明しませんでしたが、ggplot()で fill = cond を使用したため、
+ labs(color='NEW LEGEND TITLE')
うまくいかなかったかもしれません。しかし、 color を fill に置き換えても動作します。
+ labs(fill='NEW LEGEND TITLE')
これは私にとってggplot2_2.1.0でうまくいきました
あなたは2つの濃度を持っているので、私はあなたがscale_fill_manual
であなた自身の色を設定したいと思うかもしれないと想像します。
もしそうならあなたはできる:
df <- data.frame(x=1:10,group=c(rep("a",5),rep("b",5)))
legend_title <- "OMG My Title"
ggplot(df, aes(x=x, fill=group)) + geom_density(alpha=.3) +
scale_fill_manual(legend_title,values=c("orange","red"))
上記のコードのどれも私のために働きませんでした。
これが私が見つけたもので、うまくいった。
labs(color = "sale year")
末尾に\n
を追加して、タイトルと表示の間にスペースを入れることもできます。
labs(color = 'sale year\n")
コードではggplot(data, fill= cond)
を使用してヒストグラムを作成しているので、ラベルセクションに "fill"、つまり+labs(fill="Title name")
を使用して凡例のタイトルを追加する必要があります。コードがggplot(data、color = cond)である別の種類のプロットを使用していた場合は、+labs(colour= "Title Name")
を使用できます。要約すると、lab引数はaes引数と一致しなければなりません。
Geom_barプロットの凡例のタイトルを変更するために+ guides(fill=guide_legend("my awesome title"))
を使いましたが、geom_pointにはうまくいきませんでした。
いくつかの単純なグラフで機能することができるもう1つの非常に単純な答えがあります。
グラフにguide_legend()の呼び出しを追加するだけです。
ggplot(...) + ... + guide_legend(title="my awesome title")
とても素敵な ggplotのドキュメントに示されているように 。
それでもうまくいかない場合は、 ガイド を呼び出してガイドパラメータをより正確に設定できます。
ggplot(...) + ... + guides(fill=guide_legend("my awesome title"))
guides
の呼び出しにもこれらのパラメータを指定することで、形/色/サイズを変えることができます。
リストに追加するためだけに(ここで他のオプションは私にはうまくいきませんでした)、ggplotのために関数update_labelsを使うこともできます:
p <- ggplot(df, aes(x=rating, fill=cond)) + geom_density(alpha=.3) + xlab("NEW RATING TITLE") + ylab("NEW DENSITY TITLE")
update_labels(p, list(colour="MY NEW LEGEND TITLE")
これにより、x軸とy軸のラベルを別々の行で変更することもできます。
update_labels(p, list(x="NEW X LABEL",y="NEW Y LABEL")
私はggplotでfacet_wrapを使用していますが、ArnaudAの解決策を除いて、提案された解決策はどれも私にとってはうまくいきませんでした。
qplot(…) + guides(color=guide_legend(title="sale year"))
スペース、" "
を含むRにテーブルをロードすることが可能であることを知らないので、多くの人々はラベル、凡例ラベル、タイトルと軸の名前を変えるのに多くの時間を費やします。ただし、これを行うと、たとえばタブで区切られたテーブル(またはデフォルト以外の区切り文字や単一のスペース)を読み込むときに区切り記号を指定して、時間を節約したりコードのサイズを縮小したりできます。
read.table(sep = '\t')
またはcsv形式のデフォルトの読み込みパラメータを使用して:
read.csv()
つまり、すべてのプロットで新しい凡例のタイトルを指定しなくても済むように、元のデータファイルの列名(ヘッダー)として"NEW LEGEND TITLE"
という名前を直接保持できます。