Невозможно добавить разные линии в разные фасеты в geom_bar () - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь добавить разные линии к разным фасетам в geom_bar() в ggplot.Я могу копировать решения, размещенные здесь, но не могу заставить мою работать.Очень признателен за помощь!

Вот моя база данных:

> rbind(head(mlt1), tail(mlt1))

      Group variable value
1       USA     CGDP 0.639
2       JPN     CGDP 0.523
3       CHN     CGDP 0.576
4       GER     CGDP 0.413
5     OEDCE     CGDP 0.504
6   BENELUX     CGDP 0.257
91  SWI_POL     CRES 0.115
92   SA_NIG     CRES 0.033
93  IRAN_PK     CRES 0.082
94    SAUDI     CRES 0.169
95 SOUTH_AM     CRES 0.054
96 CONG_SEN     CRES 0.025 

Я использую следующий код для создания графика:

vlines <- data.frame(varaible=levels(mlt1$variable), yval=c(0.5, 0.3, 0.15, 0.05))

ggplot(mlt1, aes(x=Group, y=value, fill=variable)) +
            geom_bar(stat="identity", position="dodge") + coord_flip() +
            facet_grid(.~variable) +
            theme(legend.position = "none", 
                  axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)) +
            geom_hline(aes(yintercept=yval), data=vlines)

Я получаю этот график, который повторяет5 линий в каждом фасете вместо рисования одной линии в каждом фасете (т.е. при 0,5 в фасете 1, 0,3 в фасете 2 и т. Д.):

ggplot image with repeated lines in each facet

1 Ответ

0 голосов
/ 05 октября 2018

Исправьте опечатку в определении vlines.Должно быть сказано VARAIBLE, а не VARAIBLE.Правильный код:

vlines <- data.frame(variable=levels(mlt1$variable), yval=c(0.5, 0.3, 0.15, 0.05))

ggplot(mlt1, aes(x=Group, y=value, fill=variable)) +
        geom_bar(stat="identity", position="dodge") + coord_flip() +
        facet_grid(.~variable) +
        theme(legend.position = "none", 
              axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)) +
        geom_hline(aes(yintercept=yval), data=vlines)
...