AlejandroDGR
AlejandroDGR

Reputation: 188

How to push an abline grid to the background in a plot?

I'm trying to plot a grid for a time series plot using abline(). It works fine, but I'm not able to draw the grid lines in the background: they are above the time series line.

I'm using the following code:

options(repr.plot.width=15, repr.plot.height=10)
par(cex=1.5)

plot(Serie_PIB_NO_ajustados_hasta_2018,
    xlab="Tiempo", #Título de los ejes
    ylab="Miles de millones de €", 
    main="PIB pm Demanda España (datos no ajustados de estacionalidad y calendario)",
    col="blue",
    lwd = 3,
    xlim = c(1995, 2020),
    ylim = c(0, 350),
    xaxp = c(1995, 2019, 8)) 

lines(Serie_PIB_NO_ajustados_2019,
      col="green", lwd=3)

abline(h = c(0, 50, 100, 150, 200, 250, 300, 350), col = "grey")
abline(v = c(1995, 1998, 2001, 2004, 2007, 2010, 2013, 2016, 2019), col = "grey") 

To get this graph: enter image description here (You could see that the grid lines are above the time series lines).

I've tried to solve the problem using panel.first and tck options, as suggested in several related questions. But they don't work for me.

Data may be downloaded from this link.

Upvotes: 0

Views: 261

Answers (1)

dcarlson
dcarlson

Reputation: 11066

This should work:

plot(NA, xlab="Tiempo", #Título de los ejes
    ylab="Miles de millones de €", 
    main="PIB pm Demanda España (datos no ajustados de estacionalidad y calendario)",
    xlim = c(1995, 2020),
    ylim = c(0, 350),
    xaxp = c(1995, 2019, 8)) 

abline(h = c(0, 50, 100, 150, 200, 250, 300, 350), col = "grey")
abline(v = c(1995, 1998, 2001, 2004, 2007, 2010, 2013, 2016, 2019), col = "grey") 

lines(Serie_PIB_NO_ajustados_hasta_2018, col="blue", lwd = 3)
lines(Serie_PIB_NO_ajustados_2019, col="green", lwd=3)

Upvotes: 1

Related Questions