2012-03-13 5 views
3

Я рисую временные ряды со средними значениями переменной отклика как точки (ось y) по месяцам (по оси x).Точка, обрезанная по оси x в ggplot

Значения, лежащие на оси X (то есть значения 0), обрезаются. Я могу изменить пределы оси y, чтобы включить некоторые дополнения ниже 0, но я предпочитаю не делать этого.

Есть ли способ построить эти 0 точек перед или по оси x?

ответ

14

Попробуйте это,

q <- qplot(1:10,1:10,size=I(10)) + scale_y_continuous(expand=c(0,0)) 
gt <- ggplot_gtable(ggplot_build(q)) 
gt$layout$clip[gt$layout$name=="panel"] <- "off" 
grid.draw(gt) 

clipoff

+0

Спасибо. Я не мог заставить это работать. ggplot_gtable не распознается ... – user1267299

+0

вам необходимо обновить свои пакеты. – baptiste

+0

. Повторите попытку. Спасибо! – user1267299

2

Вы можете использовать атрибут расширения() на scale_y
Exemple на 10% с каждой стороны у шкалы:

ggplot(mydata, aes(y = value, x = mydate)) + 
    geom_point() + 
    scale_y_continuous(expand = c(0.1,0.1)) 
+0

Спасибо. Это работает, расширяя диапазон оси y. Это работает красиво, но я бы предпочел что-то подобное, предложенное баптистом выше. то есть ось x начинается с 0, но на ней выводятся 0 точек. Спасибо за вашу помощь. – user1267299

+1

Я думаю, что это должно быть '+ scale_y_continuous (expand = c (0.1.0.1))'. – user12719

-1

Если вы использовали базовую графику, которую вы могли бы использовать clip().

plot(1:4) 
clip(-0.5, 4.1, -0.5, 4.1) 
points(0.85, 1, col = 'red', cex = 2) 
+0

Я не мог понять, как сделать эту работу в скрипте ggplot. Я также попытался построить рисунок, затем обрезать и добавить точку сверху. Но это тоже не сработало. Благодарю. – user1267299

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