1. ホーム
  2. r

[解決済み] ggplotの凡例(テキスト)ラベルを編集する

2022-03-07 13:34:35

質問

ドキュメントやStackOverflowを何時間も見てきましたが、私の問題を解決してくれるような解決策はありません。このような場合 ggplot データフレーム内にあるにもかかわらず、凡例に正しいテキストが表示されないのです。試してみたところ scale_colour_manual , scale_fill_manual を異なる値にして labels= というように c("T999", "T888")", "cols" .

以下は私のコードです。

T999 <- runif(10, 100, 200)
T888 <- runif(10, 200, 300)
TY <- runif(10, 20, 30)
df <- data.frame(T999, T888, TY)


ggplot(data = df, aes(x=T999, y=TY, pointtype="T999")) + 
       geom_point(size = 15, colour = "darkblue") + 
       geom_point(data = df, aes(x=T888, y=TY), colour = 'red', size = 10 ) + 
       theme(axis.text.x = element_text(size = 20), axis.title.x =element_text(size = 20),   axis.text.y = element_text(size = 20)) +
       xlab("Txxx") + ylab("TY [°C]") + labs(title="temperatures", size = 15) + 
       scale_colour_manual(labels = c("T999", "T888"), values = c("darkblue", "red")) +    theme(legend.position="topright")

ご協力をお願いします。

解決方法は?

Henrik が紹介したチュートリアルは、プロットを作成する方法を学ぶのに最適なリソースです。 ggplot2 パッケージで提供されます。

あなたのデータを使った例です。

# transforming the data from wide to long
library(reshape2)
dfm <- melt(df, id = "TY")

# creating a scatterplot
ggplot(data = dfm, aes(x = TY, y = value, color = variable)) + 
  geom_point(size=5) +
  labs(title = "Temperatures\n", x = "TY [°C]", y = "Txxx", color = "Legend Title\n") +
  scale_color_manual(labels = c("T999", "T888"), values = c("blue", "red")) +
  theme_bw() +
  theme(axis.text.x = element_text(size = 14), axis.title.x = element_text(size = 16),
        axis.text.y = element_text(size = 14), axis.title.y = element_text(size = 16),
        plot.title = element_text(size = 20, face = "bold", color = "darkgreen"))

という結果になります。

コメントで@user2739472さんがおっしゃっている通りです。もし、凡例のテキストラベルだけを変更し、ggplot のデフォルトパレットからの色を変更したくない場合は、次のようにします。 scale_color_hue(labels = c("T999", "T888")) の代わりに scale_color_manual() .