Related Articles

# Use different y-axes on the left and right of a Matplotlib plot

• Last Updated : 26 Dec, 2020

In this article, we are going to discuss how to create y-axes of both sides of a Matplotlib plot.

Sometimes for quick data analysis, it is required to create a single graph having two data variables with different scales. For this purpose twin axes methods are used i.e. dual X or Y-axes. The matplotlib.axes.Axes.twinx() function in axes module of matplotlib library is used to create a twin Axes sharing the X-axis.

Syntax :

`matplotlib.axes.Axes.twinx(self)`

This method does not take any parameters, raise an error if provided. It returns the ax_twin object which indicates that a new Axes instance is created. Below examples illustrate the matplotlib.axes.Axes.twinx() function in matplotlib.axes:

Example 1:

## Python3

 `# import libraries ``import` `numpy as np ``import` `matplotlib.pyplot as plt `` ` `# Creating dataset ``x ``=` `np.arange(``1.0``, ``100.0``, ``0.191``) ``dataset_1 ``=` `np.exp(x``*``*``0.25``) ``-` `np.exp(x``*``*``0.5``) ``dataset_2 ``=` `np.sin(``0.4` `*` `np.pi ``*` `x``*``*``0.5``) ``+` `np.cos(``0.8` `*` `np.pi ``*` `x``*``*``0.25``) `` ` `# Creating plot with dataset_1``fig, ax1 ``=` `plt.subplots() `` ` `color ``=` `'tab:red'``ax1.set_xlabel(``'X-axis'``) ``ax1.set_ylabel(``'Y1-axis'``, color ``=` `color) ``ax1.plot(x, dataset_1, color ``=` `color) ``ax1.tick_params(axis ``=``'y'``, labelcolor ``=` `color) `` ` `# Adding Twin Axes to plot using dataset_2``ax2 ``=` `ax1.twinx() `` ` `color ``=` `'tab:green'``ax2.set_ylabel(``'Y2-axis'``, color ``=` `color) ``ax2.plot(x, dataset_2, color ``=` `color) ``ax2.tick_params(axis ``=``'y'``, labelcolor ``=` `color) `` ` `# Adding title``plt.title(``'Use different y-axes on the left and right of a Matplotlib plot'``, fontweight ``=``"bold"``) `` ` `# Show plot``plt.show()`

Output:

Example 2:

## Python3

 `# import libraries``import` `numpy as np``import` `matplotlib.pyplot as plt``from` `matplotlib ``import` `rc``rc(``'mathtext'``, default``=``'regular'``)`` ` `# Creating dataset``x ``=` `np.arange(``10``)``dataset_1 ``=` `np.random.random(``10``)``*``30``dataset_2 ``=` `np.random.random(``10``)``*``60``dataset_3 ``=` `np.random.random(``10``)``*``100`` ` `# Creating figure``fig ``=` `plt.figure()`` ` `# Plotting dataset_2``ax ``=` `fig.add_subplot(``111``)``ax.plot(x, dataset_2, ``'-'``, label``=``'dataset_2'``)``ax.plot(x, dataset_3, ``'-'``, label``=``'dataset_3'``)`` ` `# Creating Twin axes for dataset_1``ax2 ``=` `ax.twinx()``ax2.plot(x, dataset_1, ``'-r'``, label``=``'dataset_1'``)`` ` `# Adding title``plt.title(``'Use different y-axes on the left and right of a Matplotlib plot'``,``          ``fontweight``=``"bold"``)`` ` `# Adding legend``ax.legend(loc``=``0``)``ax2.legend(loc``=``0``)`` ` `# Sdding grid``ax.grid()`` ` `# Adding labels``ax.set_xlabel(``"X-axis"``)``ax.set_ylabel(r``"Y1-axis"``)``ax2.set_ylabel(r``"Y2-axis"``)`` ` `# Setting Y limits``ax2.set_ylim(``0``, ``35``)``ax.set_ylim(``-``20``, ``100``)`` ` `# Show plot``plt.show()`

Output:

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up