Adding a 'broken axis' to a plot

We've all seen a plot with a 'broken axis' --- e.g., the axis goes from 0 to 9 in units of 1, then shows a 'break' (//) and then continues from 100 to 200 in units of 20.

In R, you can create a broken axis but it takes a lot of trial and error. Here's an example. The most important thing to remember is that, in R, the length of X value must be the same as the length of your Y values. library(Hmisc) library(Design)

plot(seq(from = 0, to = 2, by = 0.5), # X seq(from = 0, to = 4, by = 1), # Y --- * X and Y must have the same length * axes=FALSE, # set up but don't plot the axes type="n", xlab="X", ylab="Y") # Add break lines along x-axis text("l", x = 1.20, y = 0, srt = -45, font = 2) text("l", x = 1.25, y = 0, srt = -45, font = 2) lines(x = c(0, 1.19), y = c(0,0), lwd = 2) lines(x = c(1.25, 4.0), y = c(0,0), lwd = 2) # Add break lines along y-axis text("l", y = 1.15, x = 0, srt = -45, font = 2) text("l", y = 1.25, x = 0, srt = -45, font = 2) lines(y = c(0, 1.15), x = c(0,0), lwd = 2) lines(y = c(1.27, 4), x = c(0,0), lwd = 2) # Add x-axis (tick marks and labels) mtext("l", side = 1, line = -1.25, at = seq(0, 2, 0.5), font = 2) axis(side = 1, at = seq(0, 2, 0.5), line = -1, tick = FALSE, labels = c("0.0", "0.5", "1.0", "5.5", "6.0")) # Add y-axis (tick marks and labels) mtext("l", side = 2, line = -1.20, at = seq(0, 4, 0.5), font = 2) axis(side = 2, at = seq(0, 4, 0.5), line = -1, tick = FALSE, labels = as.character(c(seq(from = 0, to = 4, by = 2), seq(from = 100, to = 200, by = 20))))
Topic revision: r2 - 14 Nov 2006, TheresaScott
 

This site is powered by FoswikiCopyright © 2013-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Vanderbilt Biostatistics Wiki? Send feedback