Я пытаюсь использовать geom_vline
для добавления вертикальной линии к моему графику, сгенерированному в ggplot2, но он не отображается. Все, что я хочу, это одна строка, проходящая вертикально через x = 0. Вот данные и код запуска:
#Example data for Stack Overflow
sem <- data.frame(brand = c('com','com','com','sus','sus','sus','tol','tol','tol'),
rate = c(1,
2,
3,
1,
2,
3,
1,
2,
3),
sem = c(-100.652190547299,
-20.9635462903477,
-92.887143790098,
-32.5321197096671,
-10.8046113120258,
-103.882668200279,
39.1133320990038,
50.641868900031,
27.3390542856909))
percent_diff <- data.frame(brand = c('com','com','com','sus','sus','sus','tol','tol','tol'),
rate = c(1,
2,
3,
1,
2,
3,
1,
2,
3),
percent_diff = c(-16.8547043500825,
-123.651964249353,
-70.2307389653605,
-316.119165728843,
-290.448196586088,
-276.236250440114,
23.6027946419299,
35.415138795611,
52.9344042281165))
#Left-join the data into one data frame
library(dplyr)
df <- left_join(percent_diff, sem)
#Generate the graph
library(ggplot2)
ggplot(df, aes(x=brand, y=percent_diff, fill=factor(rate)))+
geom_bar(stat="identity",width=0.6, position="dodge", col="black")+
geom_vline(xintercept = 0)+
scale_fill_discrete(name="Rate", labels=c("1X", "2X", "3X"))+
xlab("Brand")+ylab("Percent Difference (Compared to nontreated)")+
geom_errorbar(aes(ymin= percent_diff, ymax=percent_diff+sem), width=0.2, position = position_dodge(0.6))+
ggtitle("Brand Comparison")+
scale_fill_brewer(palette='Greys', name="Rate", labels=c("1X", "2X", "3X"))+
theme(plot.title = element_text(hjust=0.5))+
coord_flip()+
geom_vline(aes(xintercept=0, col = 'red', size = 3))
Результат таков:
![enter image description here](https://i.stack.imgur.com/NsGwV.png)
Почему вместо этого возникает этот вывод одной линии, бегущей вертикально? Я попытался загрузить пакет library(scales)
, но не получил ожидаемых результатов.