Как заставить ось Y пересекать ось X в 0 в ggplot2? - PullRequest
8 голосов
/ 30 июня 2010

Поэтому, когда я делаю графики, иногда вижу, что y пересекает x с некоторым смещением.Я сгенерировал эту цифру, используя:

ggplot(data=d2,aes(y=log10(Nems+1),x=Time)) +
  geom_point(size=3,shape=1) +        
  geom_line(data=d2,aes(x=time_model,y=log10(value),group=variable,linetype=variable)) +
  ylim(0.001,2) + no_bg + draw_axis

В итоге я вручную переместил y в Illustrator.Есть ли способ просто сделать это здесь?

альтернативный текст http://img816.imageshack.us/img816/7633/testzh.png

Ответы [ 2 ]

9 голосов
/ 30 июня 2010

Вот еще одно решение:

... + scale_x_continuous(expand=c(0,0))

См. Также этот связанный вопрос: Корректировка полей при использовании ggplot's geom_tile()

6 голосов
/ 30 июня 2010

Попробуйте добавить это к своему графику: + coord_cartesian(xlim = c(0, 90))

Это должно ограничить ось х от 0 до 90.

Вы также можете сделать + xlim(0, 90), что имеет аналогичный эффект- но также удаляет любые данные за пределами своих границ из набора данных.Это может быть проблематично, если вы пытаетесь увеличить объекты геомов, которые должны быть рассчитаны с использованием всего набора данных (например, сглаживания), потому что он пересчитывает эти геомы на основе только того, что находится внутри ограничений.ord_cartesian () вычисляет все geoms из полного набора данных, затем ограничивает окно тем, что вы укажете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...