Заполните geom_bar в ggplot в процентах во фрейме данных - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь создать гистограмму, на которой я могу заполнить полоску одним цветом в соответствии со значением среднего значения первой строки (0,3181555, что в процентах), а остальную часть полосы - другим цветом ( 0,6818445, строка 2, столбец 3), чтобы получить полосу от 0 до 1. Это мои данные:

View(int)

   Lower_Conf Upper_Conf   Mean   Lower_Pred Upper_Pred
1  0.3154548  0.3208561 0.3181555  0.3125413  0.3237696
2  0.6845452  0.6791439 0.6818445  0.6874587  0.6762304

Мой код был таким:

ggplot(int,aes(x=1, y=int[1,3],fill=factor(Mean)))+
  geom_bar(position="fill", stat = "identity", width = 1.2)

И я знаю, что неправильная причина, когда я говорю fill=factor(Mean), он просто заполняет 50% полосы одним цветом, а остальные - другим, и я знаю, что это потому, что я заполняю панель "уровнями", когда у меня всего два ( потому что в моих данных всего 2 числа). Но я не знаю, как заполнить значения в моем фрейме данных.

1 Ответ

1 голос
/ 07 августа 2020
• 1000 1004 *
#Create id per row
df$id <- 1:dim(df)[1]
#Melt
df.melted <- melt(df,id.vars = 'id')
df.melted$id <- factor(df.melted$id)
df.melted$id <- relevel(df.melted$id,ref = '2')
#Plot
ggplot(df.melted,aes(x=variable,y=value,fill=id,label=round(value,3)))+
  geom_bar(stat = 'identity')+
  geom_text(position = position_stack(vjust=0.5))+
  scale_fill_manual(values=c('cyan3','tomato'),guide = guide_legend(reverse=TRUE))

Вывод:

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...