给定单个参数的子图的行为是啥? [复制]

Posted

技术标签:

【中文标题】给定单个参数的子图的行为是啥? [复制]【英文标题】:What is the behaviour of subplot given single argument? [duplicate]给定单个参数的子图的行为是什么? [复制] 【发布时间】:2019-10-20 20:33:35 【问题描述】:

OpenCV.org教程有以下例子:

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt

img = cv.imread('drawing.png')
rows,cols,ch = img.shape

pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[10,100],[200,50],[100,250]])

M = cv.getAffineTransform(pts1,pts2)
dst = cv.warpAffine(img,M,(cols,rows))
plt.subplot(121),plt.imshow(img),plt.title('Input')
plt.subplot(122),plt.imshow(dst),plt.title('Output')
plt.show()

这里subplot()的作用是什么? Docs 定义为,

可以调用 Matplotlib 的 subplot() 函数绘制两个或多个 绘制在一个图中。 Matplotlib 支持所有类型的子图 包括 2x1 垂直、2x1 水平或 2x2 网格。

提供的示例有参数告诉高度与长度比,第三个参数用作索引。但这对我来说毫无帮助。

【问题讨论】:

在您的情况下,什么是“完全没有帮助”? @Sheldore 这些示例有多个参数,而不是教程中使用的单个参数。 【参考方案1】:

根据the documentation:

subplot(pos, **kwargs)

pos 是一个三位整数,其中第一个数字是 行,第二个是列数,第三个是索引 子情节。即 fig.add_subplot(235) 与 fig.add_subplot(2, 3、5)。请注意,此形式的所有整数必须小于 10 工作。

因此,plt.subplot(121) 创建了一个图形,其中一行中有两个轴(1 行,2 列),并使第一个(最左边的)轴成为当前轴。

【讨论】:

以上是关于给定单个参数的子图的行为是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 CSS 中同时使用位置和显示的行为是啥? [复制]

分组条形图的子图分组图例

Matplotlib 不同大小的子图

多个绘图子图的单个滑块

Python中两个图的子图未正确显示

在 matplotlib 中调整单个子图的大小