All of the loans this answer, I just made some erratic adjustments. Adding xpd=NA allows you to draw off the chart:
# function to draw curly braces # x, y position where to put the braces # range is the length of the brace # position: 1 vertical, 2 horizontal # direction: 1 left/down, 2 right/up # depth controls width of the shape CurlyBraces <- function(x0, x1, y0, y1, pos = 1, direction = 1, depth = 1) { a=c(1,2,3,48,50) # set flexion point for spline b=c(0,.2,.28,.7,.8) # set depth for spline flexion point curve = spline(a, b, n = 50, method = "natural")$y * depth curve = c(curve,rev(curve)) if (pos == 1){ a_sequence = seq(x0,x1,length=100) b_sequence = seq(y0,y1,length=100) } if (pos == 2){ b_sequence = seq(x0,x1,length=100) a_sequence = seq(y0,y1,length=100) } # direction if(direction==1) a_sequence = a_sequence+curve if(direction==2) a_sequence = a_sequence-curve # pos if(pos==1) lines(a_sequence,b_sequence, lwd=1.5, xpd=NA) # vertical if(pos==2) lines(b_sequence,a_sequence, lwd=1.5, xpd=NA) # horizontal } windows(width=5, height=5) par(oma=c(2,0,0,2)) plot(c(),c(), xlim=c(0,11), ylim=c(0,11), xlab='') # horizontal brace CurlyBraces(x0=2, x1=8, y0=-3, y1=-3, pos = 2, direction = 2, depth=1.5) # vertical brace CurlyBraces(x0=12, x1=12, y0=2, y1=6, pos = 1, direction = 1, depth=0.5)
