Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何绘制具有不同colspans的四个子地块?_Python_Matplotlib_Plot_Subplot - Fatal编程技术网

Python 如何绘制具有不同colspans的四个子地块?

Python 如何绘制具有不同colspans的四个子地块?,python,matplotlib,plot,subplot,Python,Matplotlib,Plot,Subplot,我尝试使用matplotlib.pyplot拟合四个图像,如下所示: | plot1 | plot2| | plot3 | | plot4 | 我发现的大多数示例包括以下三个图: ax1 = plt.subplot(221) ax2 = plt.subplot(222) ax3 = plt.subplot(212) 这成功地绘制了三个绘图(但是,我不知道如何在ax3中完成)。现在,我想把图4添加到这个布局中。无论我做了什么,都没有成功 您能告诉我如何实现它吗?您提

我尝试使用
matplotlib.pyplot
拟合四个图像,如下所示:

| plot1 | plot2|
|    plot3     |
|    plot4     |
我发现的大多数示例包括以下三个图:

ax1 = plt.subplot(221)
ax2 = plt.subplot(222)
ax3 = plt.subplot(212)
这成功地绘制了三个绘图(但是,我不知道如何在
ax3
中完成)。现在,我想把图4添加到这个布局中。无论我做了什么,都没有成功


您能告诉我如何实现它吗?

您提供给子批次的整数实际上是3部分:

  • 第一位:行数
  • 第二位:列数
  • 第三位:索引
因此,对于每个子图调用,我们指定如何划分绘图区域(使用行和列),然后指定将绘图放入哪个区域(使用索引),请参见下图

ax1 = plt.subplot(321)  # 3 rows, 2 cols, index 1: col 1 on row 1
ax2 = plt.subplot(322)  # 3 rows, 2 cols, index 2: col 2 on row 1
ax3 = plt.subplot(312)  # 3 rows, 1 cols, index 2: col 1 on row 2
ax4 = plt.subplot(313)  # 3 rows, 1 cols, index 3: col 1 on row 3
从:

一个3位整数或三个单独的整数来描述 子批次的位置。如果这三个整数是nrow、ncol和 按顺序索引,子批次将在网格上占据索引位置 具有nrows行和ncols列。索引从左上角的1开始 拐角处,向右增加

pos是一个三位整数,其中第一位是 行,第二个是列数,第三个是 子地块。i、 e.图add_子批次(235)与图add_子批次(2)相同, 3, 5). 请注意,所有整数必须小于10,此表单才能 工作

您可以使用。真的很方便

医生说

在网格中创建子地块。网格由形状、loc位置、每个方向上的跨行跨度、跨列跨度单元指定。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()

非常感谢!整个数字比我预期的要小,我怎样才能使它变矮或更高?我想我找到了我评论的答案:
plt.figure(num=2,figsize=(15,20),dpi=80,facecolor='w',edgecolor='k')plt.subplots\u adjust(hspace=0.3,bottom=0.3)