python-3.x - 在python中绘制圆时检测用于半径的测量距离
问题描述
我有一个 Python 代码,它创建了一个圆圈。但是我不确定绘制圆圈时使用的测量距离。有人可以建议如何检查。
尝试将半径更改为 5000 以查看圆的大小是否发生变化。没有反映任何变化。
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
from descartes import PolygonPatch
BLUE = '#6699cc'
fig = plt.figure()
ax = fig.gca()
ax.add_patch(Circle((-118.22191509999999, 34.0431494), 5, fill = False ))
ax.axis('scaled')
plt.show()
当使用 5000 作为半径时,预计圆会更大。不确定半径是以英里、米还是公里为单位。
解决方案
除非另有规定,transform=
半径均以数据单位表示。因此,半径为 5000 的圆比半径为 5 的圆大 1000 倍。如果您不在轴上绘制任何其他内容,轴的范围将自动调整,因此圆的视觉方面不会有所不同。但是,如果您查看 x/y 刻度标签,您可以清楚地看到一个比另一个大。
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
fig, (ax1, ax2, ax3) = plt.subplots(1,3, figsize=(15,5))
ax1.add_patch(Circle((-118.22191509999999, 34.0431494), 5, fill=False))
ax2.add_patch(Circle((-118.22191509999999, 34.0431494), 5000, fill=False))
c1 = Circle((-118.22191509999999, 34.0431494), 5, fill=False, ec='b')
c2 = Circle((-118.22191509999999, 34.0431494), 10, fill=False, ec='r')
ax3.add_patch(c1)
ax3.add_patch(c2)
ax3.legend([c1,c2],['radius=5', 'radius=10'])
for ax in [ax1, ax2, ax3]:
ax.axis('scaled')
ax2.set_title("Notice the different data range")
plt.show()
推荐阅读
- java - 对子级有限制的 JPA 层次结构查询
- linux - 为 arm 编译配置 gdb 失败
- javascript - CKEDITOR:实例准备好后如何在丰富的组合框中添加额外的项目
- spring-webflux - 如何提高 WebFlux WebClient 的吞吐量?
- docker - 如何为引用同级目录的项目构建 Dockerfile?
- powershell - Get-FSRM - 如何以 GB 为单位获取 Usage 和 Size ?
- python - 如何保留和绘制与测试集无关的 ID 特征?
- c# - c# websockets - 每隔 X 秒继续发送消息,同时等待在同一个 websocket 中收到的消息
- python - 根据用户反应发送消息
- android - 下载并将文件存储在缓存目录android中