matplotlib 圆上的生成点

0tdrvxhp  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(84)
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个点。但是,当我运行这段代码时,它出于某种原因画了一个椭圆。为什么会这样?

vmjh9lq9

vmjh9lq91#

它是一个圆--问题是坐标轴的纵横比不是1,所以当你绘制它时,它看起来像一个椭圆。要获得纵横比为1,你可以用途::

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

这在demo中突出显示。

t40tm48m

t40tm48m2#

您可以设置数字大小:

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.figure(figsize=(5,5))
plt.scatter(x,y)
plt.show()

circle()

相关问题