Aşağıda basit bir örnek veri çerçevesi ve çizim için bir kod yer almaktadır. Barları nasıl şartlı olarak renklendirdiğimi merak ediyorum. Barları el ile renklendirmek için scale_fill_manual
aşina olduğumu biliyorum, ancak 2016
fasetinde içinde daha düşük bir yüzdeyse, farklı bir renk olmasını istiyordum. Belki kırmızı uyarı sınırı veya turuncu gibi farklı bir renk (sadece bir örnek).Koşullu Renklendirme Çubukları Ggplot2
Bu en iyi örnek değil, ancak yıl boyunca top box puanlarının bir grafiği varsa, bu belirli bir yüzde altına düştüğünde çubukların rengini değiştirmek yararlı olacaktır. "colour = ifelse(Perc < 60, "orange", "green"
kombinasyonları ile uğraşmayı denedim, ancak işe yaramaya gelemedim. ifelse
ifadesinin nasıl yapılandırılacağını veya ggplot kodunun içine yerleştirileceğini bilmiyorum. Eğer değiştirmek istiyorsanız
ggplot(df.prop, aes(x = Service, y = Perc, fill = Service, colour=colour)) +
geom_bar(stat = "identity", position = "dodge") +
geom_text(aes(label = percent(Perc)), position = position_dodge(width = 1),
vjust = 1.5, size = 3, colour="black") +
scale_y_continuous(labels = percent) +
facet_grid(~ Year) +
scale_colour_identity()
:
df.prop$colour <- ifelse(df.prop$Service == "Satisfied" & df.prop$Perc < 0.6, "orange", NA)
Sonra yapabilirsiniz:
Year<-c(2015, 2015, 2015, 2015, 2015, 2016, 2016, 2016, 2016, 2016)
Service<-c("Satisfied", "Satisfied", "Satisfied", "Dissatisfied", "Dissatisfied",
"Satisfied", "Satisfied", "Dissatisfied", "Dissatisfied", "Dissatisfied")
df <- data.frame(Year, Service)
library(dplyr)
df.prop <- df %>%
count(Year, Service) %>%
mutate(Perc = prop.table(n))
library(ggplot2)
ggplot(df.prop, aes(x = Service, y = Perc, fill = Service)) +
geom_bar(stat = "identity", position = "dodge") +
geom_text(aes(label = percent(Perc)), position = position_dodge(width = 1),
vjust = 1.5, size = 3) +
scale_y_continuous(labels = percent) +
facet_grid(~ Year)
sayesinde iyi çalışıyor. Tek bir takip sorusu, cevap renkli kenarlığı eklememi sağlıyor, ancak gerçek çubuk rengini sadece anahat yerine turuncuya nasıl değiştiririm? – Mike
@Mike Düzenlenmiş cevabımı görün .. – beetroot