Добавление легенды к барплоту в ggplot - PullRequest
0 голосов
/ 28 января 2019

Может кто-нибудь сказать мне, как добавить легенду к моему барплоту, которая должна состоять только из одного цвета без учета нескольких групп?Поскольку на моем графике показаны четыре разные группы, которые активировали определенное количество стратегий регулирования, я хочу, чтобы легенда указывала, что это «общее использование стратегии», выраженное всеми столбцами графика.

id <- c(1,2,3,4)
group <- c (1,2,3,4)
means <- c(2.57, 2.32, 2.76, 2.61)
sds <- c(0.24, 0.21, 0.26, 0.24)
Problemtype <- c("No Problem", "Motivational Problem", "Knowledge Problem", "Both Problems")


barplot <- ggplot(df, aes(Problemtype, means)) + geom_bar(stat="identity", color="black", fill="lightblue") + geom_errorbar(aes(ymin = means - sds, ymax = means + sds), width=0.2)

barplot + labs(y="Overall Regulation (K 95%)", x = "Problemtype") + theme_classic()

1 Ответ

0 голосов
/ 28 января 2019

Прежде всего я добавил строку, которая создает DF.Затем я добавил новую переменную в df.Я не уверен, что это то, о чем вы спрашиваете, но это позволяет вам добавить легенду одним цветом.Затем вы можете добавить scale_fill_manual, чтобы закрасить его «lightblue».Надеюсь, что это решит.

id <- c(1,2,3,4) 
group <- c (1,2,3,4)
means <- c(2.57, 2.32, 2.76, 2.61)
sds <- c(0.24, 0.21, 0.26, 0.24) 
Problemtype <- c("No Problem", "Motivational Problem", "Knowledge Problem", "Both Problems")
library(dplyr)

df <- data.frame(id = id, group = group, means = means, sds = sds,
Problemtype = Problemtype)
df['one_col'] = 'General Strategy Use'

barplot <- df %>%    
group_by(one_col) %>%   
ggplot( aes(Problemtype, means)) +    
geom_bar(stat="identity", aes( fill = one_col))+   
geom_errorbar(aes(ymin = means - sds, ymax = means + sds), width=0.2)

barplot + labs(y="Overall Regulation (K 95%)", x = "Problemtype") +   
theme_classic()+
scale_fill_manual(values = c("lightblue"))

plot1

...