1. ホーム
  2. r

[解決済み] ggplot2 の `scale_fill_manual` でプロットに手動で色をつけるとうまくいかない

2022-03-03 15:11:06

質問

のバーの色を手動で変更する方法について悩んでいます。 ggplot2 . 不思議なことに、凡例を必要とするような複雑なフォーマットを使用する場合、以下のようにするとうまくいきます。 scale_fill_manual を設定し values , labels などです。しかし、凡例を必要としないもっとシンプルなチャートを作成すると、うまくいかないようです。下記はサンプルデータフレームで、私が使用した手順では dplyr を使用してパーセンテージを取得します。 ggplot2 . ただ、バーの色を赤、seagreen3、グレーに手動で変えたいだけなんです。

どんなことでもご相談ください。また、パーセンテージを素早く計算するために使われるさまざまな方法を知りたいのですが。私は、これまでパイピングを dplyr しかし、他のコードの書き方を見ることができれば最高です。

library(dplyr)
library(ggplot2)

Service <- c("Satisfied", "Dissatisfied", "Neutral", "Satisfied", "Neutral")
Service2 <- c("Dissatisfied", "Dissatisfied", "Neutral", "Satisfied", "Satisfied")

Services <- data.frame(Service, Service2)

ServicesProp <- Services %>%
                select(Service) %>% group_by(Service) %>% 
                summarise(count=n()) %>%
                mutate(percent = count / sum(count))

ggplot(ServicesProp, aes(x = Service, y = percent)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    scale_fill_manual(values = c("red", "seagreen3", "grey"))

解決方法は?

念のため、@baptise の意味がよくわからない場合は、こちらをご覧ください。

ggplot(ServicesProp, aes(x = Service, y = percent, fill = Service)) + 
  geom_bar(stat = "identity", position = "dodge") + 
  scale_fill_manual(values = c("red", "grey", "seagreen3"))