迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Matplotlib 中如何在图像上绘制矩形

作者:迹忆客 最近更新:2023/03/17 浏览次数:

当我们需要在 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

Matplotlib_draw 一个具有填充颜色的矩形

如果将 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 中的图像上绘制矩形

如果我们需要在 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_在图像上绘制一个矩形

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Matplotlib 中创建趋势线

发布时间:2023/05/02 浏览次数:92 分类:Python

在这篇文章中,我们看了关于趋势线的简短演示,并了解了如何在 matplotlib 中的图形上创建线性趋势线。

在 Matplotlib 中创建多个轴

发布时间:2023/05/01 浏览次数:163 分类:Python

在本文中,我们简要介绍了轴实例,并了解如何借助 Matplotlib 中的 add_axes() 方法将多个轴实例添加到图形中。

在 Matplotlib 中创建彩色三角形

发布时间:2023/03/18 浏览次数:85 分类:Python

在本教程中,我们将使用 Python Matplotlib 为自己绘制一个彩色三角形,并了解如何借助 Matplotlib 中的 turtle 库来创建它。

在 Matplotlib 中绘制日期

发布时间:2023/03/18 浏览次数:159 分类:Python

本文演示了如何使用 matplotlib.dates 以及一些使用内置 Python 模块的日期的基本示例。然后我们将看到一个使用 CSV 文件中的数据在 Matplotlib 中绘制日期的示例。

在 Matplotlib 条形图上添加值标签

发布时间:2023/03/18 浏览次数:176 分类:Python

本文讨论了如何在 matplotlib 条形图上添加值标签。我们已经讨论了两种使用 pyplot.text() 和 pyplot.annotate() 方法在 matplotlib 条形图上添加值标签的方法。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便