No rating

# Displaying exploded axes with (New) Graphics

Mark Alonzo
While I’m out of the office this week, here’s another hacktastic example for your enjoyment: displaying exploded axes in a (New) Graphics plot. Start by making a plot with axis labels and ticks that point outward, and include some extra room around the margins:
`p = plot(/test, margin=0.2, xtickdir=1, ytickdir=1)`
Next, get the x- and y-axis ranges:
```xr = max(p.xrange, min=min_x) – min_x
yr = max(p.yrange, min=min_y) – min_y```
Last, nudge the four axes of the plot outward from their default locations by some fraction of the x- or y-axis range. There are three pieces of information I’ll use for this:
1. Recall that children of a NG plot can be referenced with a hash syntax.
2. Plot axes are indexed: 0=bottom, 1=left, 2=top, 3=right, and they have default NAME properties that reflect this.
3. The location of each axis can be set by its LOCATION property, which uses data coordinates.
Here’s the code:
```frac = 0.05 ; tunable parameter
p['axis0'].location -= [0.0, frac*yr, 0.0]
p['axis1'].location -= [frac*xr, 0.0, 0.0]
p['axis2'].location += [0.0, frac*yr, 0.0]
p['axis3'].location += [frac*xr, 0.0, 0.0]```
Note that adding x- and y-axis titles to this plot will work as expected, but a plot title should be created and placed with TEXT:
```p.xtitle = 'Time'
p.ytitle = 'Amplitude'
t = text(0.5, 0.9, 'Damped Oscillator', alignment='center')```
Here’s a screenshot of the result from the Windows side of my laptop: 