Ponto recortado no eixo x em ggplot

Estou traçando uma série temporal com valores médios de uma variável de resposta como pontos (eixo y) por mês (eixo x).

Valores situados no eixo x (isto é, 0 valores) são cortados. Eu posso mudar os limites do eixo y para include algum padding abaixo de 0, mas eu prefiro não.

Existe uma maneira de plotar esses 0 pontos na frente ou no topo do eixo x?

Tente isso

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

Você pode usar o atributo expand () no scale_y
Exemplo para 10% de cada lado da escala y:

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

Com o lançamento do ggplot2 versão 3.0.0, você pode simplesmente usar o coord_cartesian(clip = 'off') .

 library(ggplot2) qplot(x = 1:10, y = 1:10, size=I(10)) + scale_y_continuous(expand=c(0,0)) + coord_cartesian(clip = 'off') + labs(title = "coord_cartesian(clip = 'off')") 

insira a descrição da imagem aqui

Se você estiver usando um dos sistemas ou funções coord_* menos usados ​​(por exemplo, coord_polar ou coord_flip ), então você pode usar o argumento clip = 'off' também.

 my_plot + coord_flip(clip = 'off') 

Se você estivesse usando charts de base, poderia usar o clip ().

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