Сортировать и разделить график по положительным и отрицательным значениям - PullRequest
0 голосов
/ 15 января 2020

Я приложил свои коды и график, полученные ниже. Мне действительно нужно разделить положительные и отрицательные столбцы на графике.

city_summary$colour<-ifelse(city_summary$x < 0, "Negative","Positive")
city_summary$hjust<-ifelse(city_summary$x >0,1.3,-0.3)
p1<-ggplot(city_summary, aes(x=City, y=x, label="",hjust=hjust))+
  geom_text(aes(y=0,colour=colour))+
  geom_bar(stat = "identity", position = "identity", aes(fill=colour))+
  scale_fill_manual(values = c(Positive="steelblue1",Negative="firebrick1"))
p1

Изображение графика

1 Ответ

0 голосов
/ 15 января 2020

Это трудно воспроизвести без набора данных, но использование reorder в вашем операторе aes( должно сработать (учитывая, что под "отдельным" вы подразумеваете группирование их вместе по оси x):

library(ggplot2)

city_summary$colour<-ifelse(city_summary$x < 0, "Negative","Positive")
city_summary$hjust<-ifelse(city_summary$x >0,1.3,-0.3)

p1<-ggplot(city_summary, aes(x= reorder(City, x) , y=x, label="",hjust=hjust))+
  geom_text(aes(y=0,colour=colour))+
  geom_bar(stat = "identity", position = "identity", aes(fill=colour))+
  scale_fill_manual(values = c(Positive="steelblue1",Negative="firebrick1"))
p1
...