Ben
Ben

Reputation: 42283

Change x-axis limits on stratigraphic plots (ie. multi-panel plots)

How can I manually adjust the x axis limits for each panel in a stratigraphic plot?

For example, here's Stratiplot from analogue:

library(analogue)
data(V12.122)
Depths <- as.numeric(rownames(V12.122))

(plt <- Stratiplot(Depths ~ O.univ + G.ruber + G.tenel + G.pacR,
                   data = V12.122,  type = c("h","l","g","smooth")))

enter image description here

How could I, for example, change the xlim of G.ruber to c(0.3, 0.9) and G.pacR to c(0, 0.75)?

Or, another possibility, here is strat.plot from rioja:

library(rioja)
library(vegan) ## decorana
data(RLGH)
# remove less abundant taxa
mx <- apply(RLGH$spec, 2, max)
spec <- RLGH$spec[, mx > 3]
depth <- RLGH$depths$Depth
#basic stratigraphic plot
strat.plot(spec, y.rev=TRUE)

enter image description here

How could I, for example, change the xlim of TA004A to c(0, 20)?

I guess that I need to supply something to address the underlying lattice/base plot code, but I'm not sure how to get started with that.

Upvotes: 8

Views: 881

Answers (1)

user20650
user20650

Reputation: 25844

This is a quick part answer by tweaking the limits of the plot object and using the lattice Extra package to resize the panels

# your data
library(analogue)
data(V12.122)
Depths <- as.numeric(rownames(V12.122))

(plt <- Stratiplot(Depths ~ O.univ + G.ruber + G.tenel + G.pacR,
                   data = V12.122,  type = c("h","l","g","smooth")))

# manually change the limits of second panel
# this auto updates ticks and labels
plt$x.limits[[2]] <- c(0.25,0.95) ;

# resize the panels 
latticeExtra::resizePanels(plt, w=c(5,5,5,5))

which gives

enter image description here

This however does not include the small blank space at the start of each segment

Upvotes: 5

Related Questions