Изменение ylim (пределы оси) отбрасывает данные, выходящие за пределы диапазона. Как это можно предотвратить? - PullRequest
16 голосов
/ 13 апреля 2010
df <- data.frame(age=c(10,10,20,20,25,25,25),veg=c(0,1,0,1,1,0,1))
g=ggplot(data=df,aes(x=age,y=veg))
g=g+stat_summary(fun.y=mean,geom="point")

Точки отражают среднее значение veg в каждом возрасте, что я и ожидал и хочу сохранить после изменения пределов осей с помощью приведенной ниже команды.

g=g+ylim(0.2,1)

Изменение пределов оси с помощью приведенной выше команды, к сожалению, приводит к удалению подмножества veg == 0 из данных, в результате чего получается

«Предупреждающее сообщение: удалены 4 строки, содержащие пропущенные значения (stat_summary)»

Это плохо, потому что теперь график данных (среднее значение stat_summary) опускает veg == 0 баллов. Как это можно предотвратить? Я просто хочу не показывать пустую часть графика - ординату от 0 до .2, но не отбрасывать связанные данные из расчета stat_summary.

1 Ответ

26 голосов
/ 13 апреля 2010

Вы можете сделать это, указав систему координат:

df <- data.frame(age=c(10,10,20,20,25,25,25),veg=c(0,1,0,1,1,0,1))
g=ggplot(data=df,aes(x=age,y=veg))
g=g+stat_summary(fun.y=mean,geom="point")
g+coord_cartesian(ylim=c(0.2,1)) #do not use +ylim() here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...