Nigel Stackhouse
Nigel Stackhouse

Reputation: 492

R-Lattice package: 1 x-axis for multiple y-axes

My question is similar to this: Plotting bar plot below xyplot with same x-axis?, but for the lattice package rather than ggplot.

I have 21 xyplots, all with the same x-axis scale, but different y-axis scales. I would like to plot all 21 lines with only 1 x-axis, but 21 different y-axes scales (one row per line). I nearly have it here:21 xyplots, 1 x-axis, but the redundant x-axes printed to each panel make this figure ridiculous. My script:

xyplot(numhr~year | spp, xlab = "Time(years)", 
ylab = "Abundance (# per party hr)", type = "l", aspect = "fill",
strip = FALSE, scales = list(relation = "free"), as.table = TRUE,
layout = c(1,21), xlim = c(1940,2010))

Any help?

~Kevin

Upvotes: 2

Views: 1952

Answers (1)

Nigel Stackhouse
Nigel Stackhouse

Reputation: 492

As per the comment above, the necessary change to my code to make this work involves adding 'y = list(relation = "free")' to the 'scales' component. Edited code below:

xyplot(numhr~year | spp, xlab = "Time(years)", 
ylab = "Abundance (# per party hr)", type = "l", aspect = "fill",
strip = FALSE, scales = list(y = list(relation = "free")), as.table = TRUE,
layout = c(1,21), xlim = c(1940,2010))

Which produces this (unfortunately the y-axes are still too condensed, but this does address the question originally posed): Improved xyplot with 1 x-axis

Upvotes: 2

Related Questions