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()

结果:

共享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()

结果:

列图像共享x坐标轴

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容