【问题标题】:Circles coming out as ovals - set aspect ratio in Python圆形以椭圆形式出现 - 在 Python 中设置纵横比
【发布时间】:2016-02-27 04:27:38
【问题描述】:

我有一个绘制一系列圆圈的图表,但是,由于轴不是圆形,而是椭圆形,如下图所示。我知道这是一个反复出现的问题,并且有很多这样的问题......但是我找不到任何对我有帮助的东西!我试过输入fig = plt.figure(0, figsize=(14.5, 1.75)),这确实有点帮助,但也许ax.set_aspect() 但是,使用标量也没有多大帮助!

对于这个情节,标有 *** 的线不存在

我的代码如下:

fig = plt.figure(0)
ax = fig.add_subplot(111)
ax.set_aspect(???)#*** not sure if this should be here or not
plt.axis([-5, 20, -1, 1])

circle1 = plt.Circle((-1,0.25), radius=0.2, color='c')
circle2= plt.Circle((4,-0.5), radius=0.5, color='m')

plt.gcf().gca().add_artist(circle1)
plt.gcf().gca().add_artist(circle2)

【问题讨论】:

    标签: python matplotlib plot aspect-ratio


    【解决方案1】:

    您可以将纵横比设置为equal,但您还需要为两个轴选择相似的尺寸,如下所示:

    from matplotlib import pyplot as plt
    
    fig = plt.figure(0)
    ax = fig.add_subplot(111)
    ax.set_aspect('equal')
    plt.axis([-5, 5, -5, 5])
    
    circle1 = plt.Circle((-1, 0.25), radius=0.2, color='c')
    circle2 = plt.Circle((4, -0.5), radius=0.5, color='m')
    
    ax.add_artist(circle1)
    ax.add_artist(circle2)
    
    plt.show()
    

    显示如下:

    【讨论】:

    • 但是,我使用圆的数据片段(第 4 列代表 y 轴的值)。那么有没有办法保持相同的轴?
    • 您可以使用您需要的任何轴,使用equal 将使圆圈保持圆形,但您最终会得到一个矩形图。
    • 好的,那么这些可以显示为圆圈的唯一方法是将它们写成椭圆吗?感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    相关资源
    最近更新 更多