Ahm*_*mad 3 python plot matplotlib subplot
我尝试使用matplotlib.pyplot如下方式拟合四张图像:
| plot1 | plot2|
| plot3 |
| plot4 |
Run Code Online (Sandbox Code Playgroud)
我发现的大多数例子都涵盖了三个这样的图:
ax1 = plt.subplot(221)
ax2 = plt.subplot(222)
ax3 = plt.subplot(212)
Run Code Online (Sandbox Code Playgroud)
这成功地绘制了三个图(但是,我不明白它是如何完成的ax3)。现在,我想将情节 4 添加到此安排中。无论我尝试什么,我都无法成功。
你能指导我如何实现它吗?
您可以使用subplot2grid。这真的很方便。
文档说
在网格中创建子图。网格由形状指定,在 loc 的位置,跨越每个方向的 rowspan 和 colspan 单元格。loc 的索引是从 0 开始的。
首先,您在(3,2)此处根据行数和列数定义大小。然后定义特定子图的起始(行、列)位置。然后分配该特定子图跨越的行/列数。行跨度和列跨度的关键字分别是rowspan和colspan。
import matplotlib.pyplot as plt
ax1 = plt.subplot2grid((3, 2), (0, 0), colspan=1)
ax2 = plt.subplot2grid((3, 2), (0, 1), colspan=1)
ax3 = plt.subplot2grid((3, 2), (1, 0), colspan=2)
ax4 = plt.subplot2grid((3, 2), (2, 0), colspan=2)
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)
在较新版本的 matplotlib 中,您可以使用subplot_mosaic:
fig, axes = plt.subplot_mosaic("AB;CC;DD")
Run Code Online (Sandbox Code Playgroud)
它为您提供了此结构中的四个子图:
AB | A | B |
AB;CC;DD -> CC -> | C |
DD | D |
Run Code Online (Sandbox Code Playgroud)
为了避免标签重叠,请启用constrained_layout:
fig, axes = plt.subplot_mosaic("AB;CC;DD", constrained_layout=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2582 次 |
| 最近记录: |