SubplotGrid.dualx(*args, **kwargs)

Add an axes locked to the same location whose x axis denotes equivalent coordinates in alternate units for every axes in the grid. This is an alternative to matplotlib.axes.Axes.secondary_xaxis with additional convenience features.

  • funcscale (callable(), 2-tuple of callables, or scale-spec) – The scale used to transform units from the parent axis to the secondary axis. This can be a FuncScale itself or a function, (function, function) tuple, or an axis scale specification interpreted by the Scale constructor function, any of which will be used to build a FuncScale and applied to the dual axis (see FuncScale for details).

  • **kwargs – Passed to CartesianAxes. Supports all valid format keywords. You can optionally omit the x from keywords beginning with x – for example ax.altx(lim=(0, 10)) is equivalent to ax.altx(xlim=(0, 10)). You can also change the default side for the axis spine, axis tick marks, axis tick labels, and/or axis labels by passing loc keywords. For example, ax.altx(loc='bottom') changes the default side from top to bottom.


proplot.axes.CartesianAxes – The resulting axes.


This enforces the following default settings:

  • Places the old x axis on the bottom and the new x axis on the top.

  • Makes the old top spine invisible and the new bottom, left, and right spines invisible.

  • Adjusts the x axis tick, tick label, and axis label positions according to the visible spine positions.

  • Syncs the old and new y axis limits and scales, and makes the new y axis labels invisible.