# Matplotlib Twin Axes

In the axes class, there are many figure elements present like AxisTickLine2DTextPolygon, etc., which are used to set the coordinate system.

When we say twin axes, it means a figure can have dual x or y-axes. Also, when plotting curves with different units together, then also twin axes is very useful.

In Matplotlib this task is supported with the `twinx` and `twiny` functions.

## Matplotlib `twinx()` and `twiny()` Function

In the Axes Module, there is a function named `Axes.twinx()` function which is used to create a twin Axes that are sharing the x-axis. Similarly, the function `twiny()` is used to create a second x axis in your figure, which means twin axes sharing the y-axis.

The syntax to use this function is as follows:

``````# for x axis
Axes.twinx(self)
# for y axis
Axes.twiny(self)``````

Note: This function does not take any parameters, if you will do so then it will raise errors.

The values returned by this method are as follows:

ax_twin: which indicates that it will return the newly created Axes instance.

Now it’s time to dive into some examples using this function,

## Example 1:

Here is an example of twin axes plot in matplotlib:

``````import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.01, 10.0, 0.001)
data1 = np.exp(t)
data2 = np.cos(0.4 * np.pi * t)

fig, ax1 = plt.subplots()

color = 'tab:orange'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp', color = color)
ax1.plot(t, data1, color = color)
ax1.tick_params(axis ='y', labelcolor = color)

ax2 = ax1.twinx()

color = 'tab:cyan'
ax2.set_ylabel('cos', color = color)
ax2.plot(t, data2, color = color)
ax2.tick_params(axis ='y', labelcolor = color)

fig.suptitle('matplotlib.axes.Axes.twinx()function Example\n\n', fontweight ="bold")

plt.show()
``````

The output for the above code is as follows:

In the above code, we used the `twinx()` function and we got twin axes sharing the x-axis.