X
No rating

# Displaying exploded axes with (New) Graphics

Anonym

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:

PRODUCTS

SOLUTIONS

LEARN