2017-02-14 6 views
0

Я этот код для создания сюжета:Bug coord_flip() не работает должным образом с coord_cartesian() и geom_errorbar()

df <- data.frame(x = c("Male", "Female"),y = c(5, 6), error = c(1, 10)) 
ggplot(df,aes(x=x, y=y, ymax=y+error, ymin=y-error))+ 
geom_errorbar(width=.15)+ 
coord_cartesian(ylim=c(0,10))+ 
geom_point(shape=22, size=3, fill="red")+ 
coord_flip()+ 
theme_bw(20) 

enter image description here Как сообщалось, coord_cartesian() кажется dosen't правильно работать с coord_flip(). На самом деле, комментируя:

#coord_flip()+ 

будет создан следующий:

enter image description here

Как я могу решить эту проблему?

+0

Использование '+ ylim (...)' вместо '+ coord_cartesian (ylim = ...)'? В противном случае используйте 'ggstance :: geom_errorbarh' вместо' coord_flip() '. – Axeman

+0

Или поставьте 'ylim' на' coord_flip() 'вместо этого, так как help говорит: _" '...': Другие аргументы, переданные на 'coord_cartesian' _ _. – Axeman

ответ

1

Как @Axeman сказал в своем комментарии, если вы включили coord_flip(ylim=c(0,10) в свой объект ggplot, вы получите второй сюжет в своем вопросе с перевернутыми координатами. На самом деле, вам не нужно даже coord_cartesian --the следующий код ...

ggplot(df,aes(x=x, y=y, ymax=y+error, ymin=y-error))+ 
geom_errorbar(width=.15)+ 
geom_point(shape=22, size=3, fill="red")+ 
coord_flip(ylim = c(0,10))+ 
theme_bw(20) 

... производит этот сюжет:

enter image description here