web-dev-qa-db-ja.com

ggplotで事前定義されたカラーパレットを使用する

Ggplotで定義済みのカラーパレットを使用する方法を知っている人はいますか?

使用したい色のベクトルがあります:

rhg_cols <- c("#771C19", "#AA3929", "#E25033", "#F27314", "#F8A31B", 
              "#E2C59F", "#B6C5CC", "#8E9CA3", "#556670", "#000000")

しかし、私はそれを何も起こさなかった

ggplot(mydata, aes(factor(phone_partner_products)), color = rhg_cols) +
  geom_bar()

aes()の中に_colour = rhg_cols_を入れる必要があります。私が知る限り、横軸に因子変数を使用してバーに勾配を適用しますか?次にfillを使用します-代わりにこれを試してください:

_ggplot(mydata, aes(factor(phone_partner_products), fill = factor(phone_partner_products))) +
  geom_bar() + 
  scale_fill_manual(values = rhg_cols)
_

または、次のようにしておおよそのレプリカを作成してください。

_ggplot(mydata, aes(factor(phone_partner_products), fill = phone_partner_products))) +
  geom_bar() + 
  scale_fill_gradient(low = "#771C19", high = "#000000")
_

2番目のケースでは、連続変数がfill aestheticsに渡されるため、_scale_fill_gradient_が後で渡されることに注意してください。 factorfill aesに渡す場合、scale_fill_manual(values = rhg_cols)を使用する必要があります。

32
aL3xa

色がパレットの場合、scale_colour_manualを使用します。

ggplot(mydata, aes(factor(phone_partner_products), colour = colour_variable)) +
  scale_colour_manual(values = rhg_cols)
23
hadley

まず、データセットに色を追加します。

mydata$col <- rhg_cols

次に、その列に色をマップし、scale_colour_identityを使用します

ggplot(mydata, aes(factor(phone_partner_products, colour = col))) + 
  geom_bar() + 
  scale_colour_identity()
10
hadley

必要な色は色の見た目の値なので、本当に必要なのはidentityスケール、この場合は_scale_fill_identity_です。

_ ggplot(mydata, aes(factor(phone_partner_products)), color=rhg_cols) +
   geom_bar() +
   scale_fill_identity())
_

データを提供しなかったため、色データを使用して少し異なる例を使用します。

_ rhg_cols <- c("#771C19","#AA3929","#E25033","#F27314","#F8A31B",
               "#E2C59F","#B6C5CC","#8E9CA3","#556670","#000000")
 mydata <- sample(rhg_cols, 100, replace = TRUE)
 qplot(mydata, fill = mydata) +
   scale_fill_identity()
_

enter image description here


注:例ではわかりやすくするため、+ opts(axis.text.x=theme_text(angle=90))を省略しました。

9
Alex Brown