Matplotlib 中如何在图像上绘制矩形
当我们需要在 Matplotlib 中的图像或纯图形上绘制矩形时,应通过 add_patch 方法将 matplotlib.patches 中的 rectangle patch 添加到轴上。
matpotlib patch 是具有外观和边缘颜色的 2D artist。Matplotlib 具有如下的 patch,
-
Arc -
Arrow -
ArrowStyle -
BoxStyle -
Circle -
CirclePolygon -
ConnectionPatch -
ConnectionStyle -
Ellipse -
FancyArrow -
FancyArrowPatch -
FancyBboxPatch -
Patch -
Path -
PathPatch -
Polygon -
Rectangle -
RegularPolygon -
Shadow -
Wedge
Rectangle patch 绘制一个指定左下角坐标和指定宽度和高度的矩形。
Rectangle(xy, width, height, angle=0.0, fill=True, **kwargs)
xy 是一个长度为 2 的元组,用于指定要绘制的矩形的左下角的坐标,
width 是矩形的宽度
height 是矩形的高度,
angle 是逆时针角度,以度为单位。
fill 指定矩形是否用 facecolor 填充。
一些有效的 kwargs 如下,
-
edgecolor:矩形边缘的颜色 -
facecolor:矩形的填充色
在 Matplotlib 中绘制矩形
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig, ax = plt.subplots()
ax.plot([1,4],[1,4])
ax.add_patch(
patches.Rectangle(
(1, 1),
0.5,
0.5,
edgecolor = 'blue',
facecolor = 'red',
fill=True
) )
plt.show()
矩形 patch 由构造函数创建,
patches.Rectangle(
(1, 1),
1,
2,
edgecolor = 'blue',
facecolor = 'red',
fill=True
)
其左下角的坐标为 (1, 1),其宽度为 1,高度为 2。
边缘颜色指定为 blue,同时填充颜色为 red。
轴对象的 add_patch(P) 方法在轴上添加一个 Patch。

如果将 fill 设置为 False,即使 facecolor 已经指定了某些颜色了,矩形也不会被填充。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig, ax = plt.subplots()
ax.plot([1,4],[1,4])
ax.add_patch(
patches.Rectangle(
(1, 1),
1,
2,
edgecolor = 'blue',
facecolor = 'red',
fill=False
) )
plt.show()

在 Matplotlib 中的图像上绘制矩形
如果我们需要在 Matplotlib 中的图像上绘制一个矩形,则它与上述方法类似,但是需要额外的步骤来获取轴 Axes 句柄。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from PIL import Image
im = Image.open('butterfly.jpg')
plt.imshow(im)
ax = plt.gca()
rect = patches.Rectangle((80,10),
70,
100,
linewidth=2,
edgecolor='cyan',
fill = False)
ax.add_patch(rect)
plt.show()
plt.imshow(im) 显示图像 butterfly.jpg,而轴 Axes 的句柄可以通过函数 plt.gca() 获得,gca 是获取当前轴 get current axes 的首字母缩写。

相关文章
如何在 Matplotlib Pyplot 中显示网格
发布时间:2024/02/04 浏览次数:142 分类:Python
-
本文演示了如何在 Python Matplotlib 中在一个图上画一个网格。使用 grid()函数来绘制网格,并解释了如何改变网格颜色和线条类型。
在 Matplotlib 中的图中添加文字
发布时间:2024/02/04 浏览次数:180 分类:Python
-
本教程展示了我们如何使用 plt.text()方法在 Matplotlib 中为图或轴添加文字。
Pandas 在 Matplotlib 柱状图上绘制多列图
发布时间:2024/02/04 浏览次数:189 分类:Python
-
在本教程中,我们将探讨如何使用 `DataFrame` 对象的 `plot()` 方法在柱状图上绘制多列。
在 Matplotlib 中创建趋势线
发布时间:2023/05/02 浏览次数:137 分类:Python
-
在这篇文章中,我们看了关于趋势线的简短演示,并了解了如何在 matplotlib 中的图形上创建线性趋势线。
在 Matplotlib 中设置条形图的宽度参数
发布时间:2023/05/02 浏览次数:256 分类:Python
-
在这个关于 Matplotlib 的演示中,我们讨论了条形图,并查看了 Matplotlib 中 bar 函数的宽度参数。
在 Matplotlib 中创建多个轴
发布时间:2023/05/01 浏览次数:185 分类:Python
-
在本文中,我们简要介绍了轴实例,并了解如何借助 Matplotlib 中的 add_axes() 方法将多个轴实例添加到图形中。
在 Matplotlib 中创建圆形箭头
发布时间:2023/03/18 浏览次数:194 分类:Python
-
在本教程中,我们使用 Python 和 Matplotlib turtle 库的帮助下从头开始绘制圆形箭头。
在 Matplotlib 中创建彩色三角形
发布时间:2023/03/18 浏览次数:120 分类:Python
-
在本教程中,我们将使用 Python Matplotlib 为自己绘制一个彩色三角形,并了解如何借助 Matplotlib 中的 turtle 库来创建它。

