Как вручную изменить цвет заливки гистограммы, когда stat='count' в ggplot2

avatar
Robin
9 августа 2021 в 03:01
197
1
1

Вот мои данные:

mydata=data.frame(compliance=c("Yes","Yes","No","Yes","Yes","No"),
                  doctor=c("Sam","Sam","Sam","Bob","Fred","Bob"))

Я попытался создать гистограмму, как показано ниже:

ggplot(data=mydata, aes(x=doctor,fill=compliance)) +
  geom_bar(stat="count",width=0.4) +
  geom_text(stat='count',aes(label=..count..), vjust=-0.3) + 
  expand_limits(y = c(0, 3)) + 
  labs(y = NULL, x= NULL) +
  theme(legend.title = element_blank()) +
  scale_fill_manual(values = c("#00BFC4","#F8766D")) + 
  scale_fill_discrete(limits = c("Not found","Compliance")) 

Однако цвет полосы по-прежнему серый, я хотел бы знать, как решить эту проблему, спасибо! enter image description here

Источник

Ответы (1)

avatar
Ronak Shah
9 августа 2021 в 03:04
2

Не используйте два scale_.*. Вы можете добавить labels в сам scale_fill_manual.

library(ggplot2)

ggplot(data=mydata, aes(x=doctor,fill=compliance)) +
  geom_bar(stat="count",width=0.4) +
  geom_text(stat='count',aes(label=..count..), vjust=-0.3) + 
  expand_limits(y = c(0, 3)) + 
  labs(y = NULL, x= NULL) +
  theme(legend.title = element_blank()) +
  scale_fill_manual(values = c("#00BFC4","#F8766D"), labels = c("Not found","Compliance"))

enter image description here