【问题标题】:Detect distance of measurement used for radius while drawing circle in python在python中绘制圆时检测用于半径的测量距离
【发布时间】:2019-07-29 16:49:59
【问题描述】:

我有一个 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 作为半径时,预计圆会更大。不确定半径是以英里、米还是公里为单位。

【问题讨论】:

    标签: python-3.x matplotlib charts descartes


    【解决方案1】:

    除非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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多