2013-05-14 2 views
1

Вот как я хочу, чтобы это выглядело (сделано в Excel): excel exampleКак изменить, где горизонтальная ось пересекает вертикальную ось в geom_bar?

А вот код шаблона:

library(ggplot2) 
data <- c(0.3,0.4,0.5,0.6,0.7,0.8) 
qplot(x=1:6, y=data, geom="bar", stat="identity") 

редакцией после того, как комментатора предложил мне нужно больше слов в моем вопросе:

Мой код выше рисует ось x при y = 0, так что все бары поднимаются от оси. Я хочу, чтобы ось х была равна y = 0,5, и мне нужны столбцы со значениями < 0.5 to go down, в то время как столбцы со значениями> 0,5 to go up. Как и в примере Excel, который я разместил выше.

Надеюсь, это имеет смысл.

+1

qplot (х = 1: 6, у = данные - 0,5, геый = "бар", стат = "идентичность") + scale_x_reverse(). ggplot пытается спасти мир от самых экстремальных злоупотреблений. Я не думаю, что вы можете делать то, что вы действительно хотите сделать, не показывая его на оси. –

+0

См. Ответ от @ AriB.Friedman в [этот ответ] (http://stackoverflow.com/a/11398481/1492421) –

+0

Я отредактировал свой вопрос за комментарий @ RicardoSaporta – yoavram

ответ

1

Это немного неудобное, но возможно:

qplot(x=factor(1:6,levels=6:1), y=data-0.5, geom="bar", stat="identity") + scale_y_continuous(breaks=seq(-0.5,0.5,0.1),labels=seq(0,1,0.1),limits=c(-0.5,0.5)) 
+0

Спасибо. Вот [окончательный код] (https://gist.github.com/yoavram/5606906) и [заключительный сюжет] (http://i.imgur.com/S6l1XNK.png). – yoavram

Смежные вопросы