In matplotlib, how do you display an axis on both sides of the figure? In matplotlib, how do you display an axis on both sides of the figure? python python

In matplotlib, how do you display an axis on both sides of the figure?


You can use tick_params() (this I did in Jupyter notebook):

import matplotlib.pyplot as pltbar(range(10), range(10))tick_params(labeltop=True, labelright=True)

Generates this image:

Bar plot with both x and y axis labeled the same

UPD: added a simple example for subplots. You should use tick_params() with axis object.

This code sets to display only top labels for the top subplot and bottom labels for the bottom subplot (with corresponding ticks):

import matplotlib.pyplot as pltf, axarr = plt.subplots(2)axarr[0].bar(range(10), range(10))axarr[0].tick_params(labelbottom=False, labeltop=True, labelleft=False, labelright=False,                     bottom=False, top=True, left=False, right=False)axarr[1].bar(range(10), range(10, 0, -1))axarr[1].tick_params(labelbottom=True, labeltop=False, labelleft=False, labelright=False,                     bottom=True, top=False, left=False, right=False)

Looks like this:

Subplots ticks config example


There are a couple of relevant examples in the online documentation:


I've done this previously using the following:

# Create figure and initial axis    fig, ax0 = plt.subplots()# Create a duplicate of the original xaxis, giving you an additional axis objectax1 = ax.twinx()# Set the limits of the new axis from the original axis limitsax1.set_ylim(ax0.get_ylim())

This will exactly duplicate the original y-axis.