【问题标题】:Generating points on a circle在圆上生成点
【发布时间】:2016-09-09 00:35:11
【问题描述】:
import random
import math
import matplotlib.pyplot as plt


def circle():
    x = []
    y = []
    for i in range(0,1000):
        angle = random.uniform(0,1)*(math.pi*2)
        x.append(math.cos(angle));
        y.append(math.sin(angle));
    plt.scatter(x,y)
    plt.show()
circle()

我已经编写了上面的代码,在单位圆上随机绘制 1000 个点。但是,当我运行此代码时,它出于某种原因绘制了一个椭圆形。这是为什么呢?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    它是一个圆圈——问题是你的轴的纵横比不是 1,所以当你绘制它时它看起来像一个椭圆。要获得 1 的纵横比,您可以使用:

    plt.axes().set_aspect('equal', 'datalim')  # before `plt.show()`
    

    这在demo 中突出显示。

    【讨论】:

    • 我不太明白...为什么不在1.5到1.5轴内画一个圆?
    • 虽然轴在两个轴上的范围相同(3 个单位),但画布在 x 轴和 y 轴上占据的物理空间不同。您需要明确地告诉 matplotlib 使其相同。
    猜你喜欢
    • 2011-02-10
    • 2023-01-07
    • 2014-12-05
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    相关资源
    最近更新 更多