python - Python - 在散点处绘制已知大小的矩形
问题描述
我有一组要点:
a = ([126, 237, 116, 15, 136, 348, 227, 247, 106, 5, -96, 25, 146], [117, 127, 228, 107, 6, 137, 238, 16, 339, 218, 97, -4, -105])
我制作了它们的散点图,如下所示:
fig = plt.figure(figsize = (15,6))
ax = fig.add_subplot(111)
ax.scatter(a[0], a[1], color = 'red', s=binradius)
这使得这个情节:
--
我用一张图片覆盖它,其中每个散点都有一个球形斑点。我想拟合这个 blob,所以我在散点周围定义了一个矩形区域,以便执行拟合。
我想在绘图上看到这个矩形,以直观地查看它们是否足够大以包围 blob,如下所示:
我可以这样做scatter
吗?或者我还有其他方法可以做到吗?
解决方案
尽管@ralf-htp 的答案很好,很干净并且可以使用scatter
,但据我所知,标记的比例用表示points
(参见例如here)。此外,如果您放大,自定义标记不会改变大小。
也许这正是您正在寻找的。如果没有,使用单独Rectangle
的对象也可以很好地解决问题。这允许您以数据单位而不是点指定宽度和高度,并且您可以放大。如有必要,通过设置angle
属性也可以轻松应用旋转:
from matplotlib import pyplot as plt
from matplotlib.patches import Rectangle
# Your data
a = ([126, 237, 116, 15, 136, 348, 227, 247, 106, 5, -96, 25, 146],
[117, 127, 228, 107, 6, 137, 238, 16, 339, 218, 97, -4, -105])
# Your scatter plot
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(a[0], a[1], color = 'red', s=10)
# Add rectangles
width = 30
height = 20
for a_x, a_y in zip(*a):
ax.add_patch(Rectangle(
xy=(a_x-width/2, a_y-height/2) ,width=width, height=height,
linewidth=1, color='blue', fill=False))
ax.axis('equal')
plt.show()
注意:如有必要,您可以Rectangle
通过 获取实例ax.get_children()
。
推荐阅读
- python - 数据框中的计算和删除/创建列
- javascript - 我如何只允许经过身份验证的用户(使用 cognito)专门访问他们自己的 S3 存储桶/密钥?
- javascript - React Native ScrollView - How to scroll to a child component from another child component button?
- kubernetes - Helm 等待依赖项部署在 kubernetes 上准备就绪
- ag-grid-react - 当我将它与 ag-grid-react 一起使用时,react-datepicker 没有正确显示
- spring-boot - 带有保险库后端的spring boot jdbc配置
- maven - 从 JUnit4 迁移到 JUnit5 会在 @Autowired 存储库上引发 NullPointerException
- php - 在执行我的登录页面时,我收到错误消息 404,我该如何解决这个问题?
- r - 聚合数据框 - 计算原始数据框中的行数
- node.js - 节点 cron 10 分钟后发送邮件