matplotlib可视化篇--共享坐标轴

本节主要关注绘制多个曲线时,共享一个x轴坐标,y轴左右分别使用两个刻度来标识,官方示例地址,参考博客

实现关键函数:
Axes.twinx(),Axes.twiny(),用来生成坐标轴实例以共享x或者y坐标轴
matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False),函数链接
重要参数:
nrows,ncols: 用来确定绘制子图的行数和列数
sharex,sharey: 用来确定是否共享坐标轴刻度,当设置为True或者all时,会共享参数刻度,设置为False或者None时,每一个子绘图会有自己独立的刻度,设置为row或者col时即共享行,列的x,y坐标轴刻度,当sharex='col'时,只会该列最底层axes的x刻度标签会创建,如果需要其他的标签显示,参考tick_params
示例

import numpy as np
import matplotlib.pyplot as plt

# 创建数据
t = np.arange(0.01, 10.0, 0.01)
data1 = np.exp(t)#生成指数数据集
data2 = np.sin(2 * np.pi * t)#生成一个三角函数

fig, ax1 = plt.subplots()

color = 'red'
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()  # 实例化一个新的坐标轴,共享同一个x轴
ax2.set_ylabel('sin', color='blue')  # 共享x坐标轴,这里设置其y轴坐标标签
ax2.plot(t, data2, color='aqua')#绘制第二个曲线
ax2.tick_params(axis='y', labelcolor='cornflowerblue')

fig.tight_layout()  # 保证图像被完整显示
plt.show()

结果:

matplotlib可视化篇--共享坐标轴_第1张图片
共享x坐标轴

当遇到绘制几行几列图像时,可以共享坐标轴,可以通过设置twinx和twiny来实现,示例如下

import numpy as np
import matplotlib.pyplot as plt

#生成数据集
t = np.arange(0.01, 10.0, 0.01)
data1 = np.sin(np.pi*t)#生成指数数据集
data2 = np.sin(2 * np.pi * t)
data3=np.cos(2*np.pi*t)
data4=np.cos(2.5*np.pi*t)

fig,ax=plt.subplots(2, 2, sharex='col')#设置sharex参数为True或者all或者col来实现
#分别绘制四个子图空间的图形
ax1=ax[0,0]
ax1.plot(t,data1)

ax2=ax[0,1]
ax2.plot(t,data2)

ax3=ax[1,0]
ax3.plot(t,data3)

ax4=ax[1,1]
ax4.plot(t,data4)

plt.show()

结果:

matplotlib可视化篇--共享坐标轴_第2张图片
列图像共享x坐标轴

你可能感兴趣的:(matplotlib可视化篇--共享坐标轴)