当前位置: 首页 > 面试题库 >

如何在matplotlib图的特定区域上绘制矩形

袁山
2023-03-14
问题内容

我有一张根据某些数据计算得出的图表,绘制在matplotlib中。我想在此图的全局最大值周围绘制一个矩形区域。我试过,plt.axhspan,但通话时似乎没有出现矩形plt.show()

那么,如何在matplotlib图上绘制矩形区域?谢谢!


问题答案:

最可能的原因是在调用axhspan时将数据单元用作x参数。从函数的文档(我的重点):

y坐标以数据单位为单位, x坐标以轴(相对于0-1)为单位

因此,任何向左拉伸为0或向右拉伸为1的矩形都可以简单地画在图中。

一个简单的替代方法是Rectangle在轴上添加一个(例如,通过plt.gca
add_patch);Rectangle使用两个维度的数据单位。下面将添加一个以(2,3)为中心的宽度和高度为1的灰色矩形:

from matplotlib.patches import Rectangle
someX, someY = 2, 3
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX - .5, someY - .5), 1, 1, facecolor="grey"))


 类似资料:
  • 给定一个信号的时间表示图,如何画出相应的时间指标线? 具体来说,给定一个时间索引范围为0到2.6(s)的信号图,我想画垂直红线,指示列表的相应时间索引,我该怎么做?

  • 问题内容: 给定时间表示中的信号图,如何绘制标记相应时间索引的线? 具体来说,给定时间索引范围为0到2.6(s)的信号图,我想绘制垂直红线以指示列表的相应时间索引,我该怎么办? 问题答案: 添加无需覆盖实际高度即可覆盖整个绘图窗口的垂直线的标准方法是 要么 您可以使用许多可用于其他情节命令的关键字(例如,,…)。您可以传递关键字参数,如果愿意,可以传递坐标(例如,将覆盖图的中部)。水平线()和矩形

  • 问题内容: 我在python代码中遇到了麻烦。 我的问题是我需要在图像的感兴趣区域周围绘制一个矩形。如何在python中完成?我正在执行对象检测,并想在我相信在图像中找到的对象周围绘制一个矩形。 问题答案: 请不要尝试使用旧的cv模块,请使用cv2: [编辑]追加以下后续问题:

  • 问题内容: 我希望能够通过鼠标事件在matplotlib图上绘制选择区域。我没有找到有关如何使用python的信息。 最后,我希望能够在用matplotlib底图创建的地图上用鼠标绘制感兴趣的区域并检索角坐标。 有人有想法,例如参考吗? 谢谢, 格雷格 问题答案: Matplotlib提供了自己的。matplotlib页面上有一个示例,您可以根据需要进行调整。 简化版本如下所示:

  • 问题内容: 我尝试使用以下代码在具有日期时间x轴的图形上绘制矩形: 但是,我得到了错误: 怎么了 (我正在使用matplotlib 1.0.1版) 问题答案: 问题在于,matplotlib使用其自己的日期/时间表示形式(浮动天数),因此您必须先进行转换。此外,您将不得不告诉xaxis它应该具有日期/时间刻度和标签。下面的代码可以做到这一点: 结果: 注意 :Matplotlib 1.0.1 非常

  • 我想在一个图像上手动绘制多个区域来创建一个绘制区域的二进制掩码(地面真相)。 我附加了一个代码,使用Emfreehand来完成一个区域的工作,但一旦释放鼠标按钮,该区域的二进制掩码就会显示出来。有没有一种方法可以绘制多个区域,然后显示二进制掩码?(多次调用Emfreehand可能不起作用,因为每个图像的区域数不同)。 多谢了。