python使用matplotlib的plt.subplot、plt.subplots绘制多图以及图例legend注意事项

文章目录

*
摘要
方法1:未使用返回值的plt.subplot
方法2:使用返回值的plt.subplot
方法3:plt.subplots
吐槽

摘要

一个图片里边绘制多个图像是绘图中的常见需求。下边介绍几种实现方法,然后简单分析一下他们的细微区别,并说明了添加legend时候常见的一些坑。

方法1:未使用返回值的plt.subplot

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0, 10)
y1 = 2 * t
y2 = -4 * t + 5

plt.subplot(211)
plt.plot(t, y1, label='ax1')
plt.subplot(212)
plt.plot(t, y2, label='ax2')
plt.legend()

结果如下图。 注意:legend只标到了第二个ax上边,第一个ax没标注上。这是因为 plt.legend默认只标注最后一个ax的legend。

python使用matplotlib的plt.subplot、plt.subplots绘制多图以及图例legend注意事项

方法2:使用返回值的plt.subplot

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0, 10)
y1 = 2 * t
y2 = -4 * t + 5

ax1 = plt.subplot(2, 1, 1)
ax1.plot(t, y1, label='ax1')
ax2 = plt.subplot(2, 1, 2)
ax2.plot(t, y2, label='ax2')
ax1.legend()

结果如下图,可以看出 ax1.legend()的指向性非常明确,只给 ax1添加legend。

python使用matplotlib的plt.subplot、plt.subplots绘制多图以及图例legend注意事项
这种方法存在一个不是问题的问题:pycharm会给出如下图所示的报警,不知道是怎么回事。但是不影响运行结果。
python使用matplotlib的plt.subplot、plt.subplots绘制多图以及图例legend注意事项

方法3:plt.subplots

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0, 10)
y1 = 2 * t
y2 = -4 * t + 5

fig, axs = plt.subplots(2, 1)
axs[0].plot(t, y1, label='ax1')
axs[1].plot(t, y2, label='ax2')
axs[0].legend()

结果如下图,可以看出 axs[0].legend()的指向性非常明确,只给第一个ax添加legend。

python使用matplotlib的plt.subplot、plt.subplots绘制多图以及图例legend注意事项

吐槽

感觉matplotlib官方文档相比sklearn差了很多。现在还没搞清楚 ax.XXXplt.XXX的区别。不知道支持 plt.XXX的操作,是不是都支持 ax.XXX。欢迎大佬解惑!

Original: https://blog.csdn.net/shiyuzuxiaqianli/article/details/114644887
Author: 千行百行
Title: python使用matplotlib的plt.subplot、plt.subplots绘制多图以及图例legend注意事项

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/770149/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球