Горизонтальные линии от 0 до точки в ggplot2 - PullRequest
0 голосов
/ 10 марта 2019

Можно ли добавить горизонтальные линии от 0 к точкам на графике, показанном ниже?

Это код на данный момент:

ggplot(data, aes(x=change, y=industry, color=geo)) + geom_point() + 
scale_x_continuous(labels = scales::comma) + geom_vline(xintercept = 0)

В качестве альтернативы, я мог бы использовать geom_bar() но я не был уверен, как показать Лондон и Великобританию без их суммирования.

image link

1 Ответ

0 голосов
/ 10 марта 2019

tl; др вы можете использовать geom_bar() с position="stack", stat="identity". Или вы можете использовать geom_segment().

настроить данные

dd <- expand.grid(industry=c("property",
                            "manufacturing",
                            "other"),
                 geo=c("London","UK"))
set.seed(101)
dd$change <- runif(6,min=-30,max=30)

Вот как вы могли бы сделать это с geom_bar

library(ggplot2)
ggplot(dd,aes(x=industry,y=change,
              fill=geo))+
  geom_bar(stat="identity",
           position="dodge")+
  coord_flip()

Или с geom_segment():

ggplot(dd,aes(x=change,y=industry,
              colour=geo))+
  geom_point(size=2)+
  geom_segment(aes(xend=0,yend=industry))

Возможно, вы захотите вручную уклониться от позиции во втором случае, но position_dodge в ggplot может уклоняться только по горизонтали, поэтому вам следует либо переключить x и y и использовать coord_flip(), либо использовать position_dodgev из ggstance пакет.

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