ошибка ggplot: разрывы и метки имеют разную длину

#r #ggplot2

Вопрос:

Я строю график, похожий на демографическую пирамиду. Вот мои данные:

 value  percent     party
 -5     0.02    Conservative
 -4     0.44    Conservative
 -3     7.71    Conservative
 -2     24.02   Conservative
 -1     12.17   Conservative
  1     19.77   Conservative
  2     27.17   Conservative
  3     7.36    Conservative
  4     1.05    Conservative
  5     0.26    Conservative
 -5     0.04    Labour
 -4     0.57    Labour
 -3     9.49    Labour
 -2     29.38   Labour
 -1     13.82   Labour
  1     16.99   Labour
  2     22.74   Labour
  3     5.93    Labour
  4     0.87    Labour
  5     0.19    Labour
 

Код для графика работал на днях, вот он:

 plot1 <- ggplot(pos_neg_data_final, aes(x = value, y = percent, fill = Party))  
  geom_bar(data = subset(pos_neg_data_final, Party == "Conservative"), stat = "identity")   
  geom_bar(data = subset(pos_neg_data_final, Party == "Labour"), stat = "identity")   
  coord_flip()  
  scale_x_continuous(breaks = c(-5,-4,-3,-2,-1,0,1,2,3,4,5), name = "Value")  
  scale_y_continuous(name = "Percent", labels = abs(pretty(pos_neg_data_final$percent)))  
  scale_fill_manual(values = group.colours, name = "Party", labels = c("Conservative", "Labour"))

 

И вот график, который он произвел:

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

Я хочу вернуться и сделать его красивее, добавить заголовок и т.д., Но теперь тот же код выдает следующую ошибку:

 Error: Breaks and labels are different lengths
 

Я попытался добавить разные метки и ограничения, но все равно та же ошибка. Любая помощь действительно ценится.

Комментарии:

1. Приведите примеры данных. Запустите свой код строка за строкой, выясните, на каком шаге вы столкнулись с ошибкой. Затем сравните размеры разрывов и меток.

Ответ №1:

Вот код, который работает:

 df=read.table(text = 'value  percent     Party
-5     -0.02    Conservative
-4     -0.44    Conservative
-3     -7.71    Conservative
-2     -24.02   Conservative
-1     -12.17   Conservative
1     -19.77   Conservative
2     -27.17   Conservative
3     -7.36    Conservative
4     -1.05    Conservative
5     -0.26    Conservative
-5     0.04    Labour
-4     0.57    Labour
-3     9.49    Labour
-2     29.38   Labour
-1     13.82   Labour
1     16.99   Labour
2     22.74   Labour
3     5.93    Labour
4     0.87    Labour
5     0.19    Labour',header=T)

group.colours = c('blue','red')
plot <- ggplot(df, aes(x = value, y = percent, fill = Party))  
  geom_bar(data = subset(df, Party == "Conservative"), stat = "identity")   
  geom_bar(data = subset(df, Party == "Labour"), stat = "identity")   
  coord_flip()  
  scale_x_continuous(breaks = c(-5,-4,-3,-2,-1,0,1,2,3,4,5), name = "Value")  
  scale_y_continuous(name = "Percent", labels = abs(pretty(df$percent)))  
  scale_fill_manual(values = group.colours, name = "Party", labels = c("Conservative", "Labour"))
 

Проблема заключалась в том, что процентное значение не было отрицательным для консервативных, я думаю.

Выход :

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

Дай мне знать, было ли это то, что ты хотел

Комментарии:

1. Спасибо! Это были негативы для консервативных данных. Такая простая ошибка.