我在弄乱随机分布的图形时发现模糊不清,但有规律的间隔,当我绘制由int(random.random()* random.random())创建的分布时,会出现线条。这是我正在使用的代码:
import random
import matplotlib.pyplot as plt
x = []
y = []
for i in range(50000):
x.append(int(100*(random.random() + random.random())))
y.append(int(100*(random.random() + random.random())))
plt.figure(figsize = (12,12))
plt.scatter(x,y,s=3)
这是我得到的图:
如果您将整数转换为整数,则整个过程将按预期进行:
奇怪的是,似乎只有x轴才是垂直线,因为删除x轴上的投射会去除这些线。 y轴没有显示任何模糊的水平线,但是有一些较暗的线。
显然,较弱的线条与强制转换为整数有关,但是为什么以及如何影响这种方式的整体分布。另外,为什么只在垂直方向上而不在两个方向上对称地施加?
答案 0 :(得分:1)
很可能与工件有关,matplotlib
如何确定在绘图过于“拥挤”时从绘图中掉落的点。例如,在我的屏幕上,我得到了一条带有紧密间隔的线条的绘图-参见,同时将绘图大小减小到(10, 10)
会得到。
另外,将点数减少到10000(在我的情况下=对于我的屏幕)会导致size=(12,12)
:
作为实验,让我们绘制一组均匀间隔的点集:
import numpy as np
import matplotlib.pyplot as plt
y, x = np.meshgrid(np.arange(100), np.arange(100))
plt.figure(figsize = (5,5))
plt.scatter(x.ravel(), y.ravel(), s=3)
plt.show()