python - 为什么在检查点是否在多边形内时,patch.contains_point() 的行为与 patch.get_path().contains_point() 的行为不同?
问题描述
使用 matplotlib.patches,该patch.contains_point(xy)
方法的工作方式似乎与 不同patch.get_path().contains_point(xy)
,至少在将补丁添加到轴之后。见差异True/True
及True/False
以下。我找不到任何关于这种差异的文档。有人知道吗?我也很难看到如何contains_point()
确定该点是否在路径内,因为在这种情况下路径的顶点是单位矩形,而不是我指定的矩形。
fig, ax = plt.subplots()
rect = patches.Rectangle([0.2, 0.3], 0.8, 0.5)
pnt = [0.4, 0.45] # point inside rect
print("Before adding patch to axes:")
print(rect.get_path().vertices)
print(rect.contains_point(pnt))
print(rect.get_path().contains_point(pnt))
print("After adding patch to axes")
ax.add_patch(rect)
print(rect.get_path().vertices)
print(rect.contains_point(pnt))
print(rect.get_path().contains_point(pnt))
plt.show()
Before adding patch to axes:
[[0. 0.]
[1. 0.]
[1. 1.]
[0. 1.]
[0. 0.]]
True
True
After adding patch to axes
[[0. 0.]
[1. 0.]
[1. 1.]
[0. 1.]
[0. 0.]]
False
True
解决方案
推荐阅读
- java - 如何将 NonNull 注释正确导入 android studio?
- swift - 快速访问级别
- python - 为另一个 DataFrame 中的每个唯一值复制整个 DataFrame
- mysql - MYSQL 查询中的子串索引问题
- java - 在配置 Spring WebClient 代理时如何更改 DEFAULT_CONNECT_TIMEOUT_MILLIS?
- c# - Add Version number to a generic file in Windows
- google-tag-manager - 我的 Google Analytics(分析)目标显示 0 次转化?
- postgresql - SSAS 与 Postgres 的连接
- angular - Angular2 component constructor didn't called
- google-apps-script - Google Apps Script moving file to Team Drive folder