Идеально выровняйте горизонтальное поле под гистограммой - PullRequest
0 голосов
/ 09 октября 2019

Я задаю этот вопрос, который звучит так же, как этот пост , потому что он не решил проблему. Вот мой вопросУ меня есть 2 сюжета, которые я хочу, чтобы их шкала идеально соответствовала друг другу. Вот что я получил: enter image description here

Как вы можете видеть, ось х не совсем совпадает. Вот код, который я использовал

bp_horiz<-ggplot(df,aes(y=Corg_rate))+
  geom_boxplot()+
  theme_classic()+
  labs(y="Corg annual rate")+
  coord_flip()

histo<-ggplot(data=df, aes(Corg_rate))+
  geom_histogram(fill="grey",col="black")+
  labs(x="Corg annual rate",y="Counts")+
  theme_classic()+
  labs(x=NULL,y="Counts")

plot_grid(histo,boxplot_horiz,ncol=1,align="v",rel_heights=c(4,1),axis = 'lr')

Я попытался изменить параметры выравнивания с v на h на hv, но безуспешно. Я пытался использовать яйцо с той же проблемой на не выравнивание. Я попытался использовать ggMarginal, но он не работает, когда центральный график является гистограммой.

Как бы вы решили эту проблему?

Я не знаю, как добавить данные, но, чтобы прояснить ситуацию, это начало:

   Corg_rate
 1  -0.0147 
 2   0.0106 
 3   0.114  
 4  -0.00230
 5   0.0105 
 6  -0.0574
 7   0.0102 
 8  -0.00472
 9   0.0335 
10  -0.00803

1 Ответ

0 голосов
/ 09 октября 2019

Я наконец нашел способ: написать шкалу для каждого графика. Поэтому я добавил к коду

  • для коробочного графика (до координат_flip)
+scale_y_continuous(limits=c(min(df$Corg_rate),max(df$Corg_rate)))

  • и для гистограммы
+scale_x_continuous(limits=c(min(df$Corg_rate),max(df$Corg_rate)))

Функция plot_grid тогда работает просто отлично, и у двух графиков их шкалы выровнены

...