我尝试使用matplotlib.pyplot
拟合四个图像,如下所示:
| plot1 | plot2|
| plot3 |
| plot4 |
我发现的大多数例子都包含了如下三个情节:
ax1 = plt.subplot(221)
ax2 = plt.subplot(222)
ax3 = plt.subplot(212)
这样就成功地绘制了三个图(但是,我不知道ax3
是如何绘制的)。现在,我想把图4添加到这个排列中。无论我尝试什么,我都不能成功。
你能告诉我怎样才能做到吗?
3条答案
按热度按时间mmvthczy1#
你可以用subplot2grid,真的很方便。
医生说
在网格中创建子绘图区。网格由形状、位置、跨行、跨列单元格在每个方向指定。位置的索引从0开始。
首先,在此根据行数和列数
(3,2)
定义大小。然后,定义特定子区的起始(行、列)位置。然后,指定该特定子区跨越的行数/列数。行和列跨越的关键字分别为rowspan
和colspan
。7vhp5slm2#
您提供给子图的整数实际上是3部分:
因此,对于每次调用子图,我们指定如何划分图区域(使用行和列),然后将图放置在哪个区域(使用索引),见下图。
从docs:
一个3位数整数或三个单独的整数,用于描述子区的位置。如果三个整数依次为nrows、ncols和index,则子区将在具有nrows行和ncols列的网格上占据索引位置。index从左上角的1开始,向右递增。
pos是一个三位数的整数,其中第一位数是行数,第二位数是列数,第三位数是子图的索引。即,图add_subplot(235)与图add_subplot(2,3,5)相同。注意,所有整数必须小于10,此形式才能工作。
第一节第一节第一节第一节第一次
bd1hkmkf3#
在较新版本的matplotlib中,可以使用
subplot_mosaic
,如下所示:它在此结构中提供了四个子图:
要避免标签重叠,请启用
constrained_layout
: