初学Matplotlib,如何为图形做随机数据
问题描述:
我正在玩matplotlib试图学习它的功能,但我正在努力的一个问题是使它随机产生数据来测试我的图。任何人都可以告诉我我在这里做错了什么吗?初学Matplotlib,如何为图形做随机数据
import numpy as np
labels = numpy.random.random_integers(0, high=1, size=10000)
x = numpy.random.random_integers(1, high=10, size=10000)
y = numpy.random.random_integers(1, high=10, size=10000)
plt.ylabel("Y")
plt.xlabel("X")
plt.hist(x, label='1')
plt.hist(x[y==0], label='0')
plt.legend(loc='upper right')
plt.savefig('testRand.png')
而且到这一点,如果我要X到持有10%1的范围内哪能分发数据,例如,20%2的,70%3的所以这可以被绘制,我可以让我的图表看起来漂亮/可能保持有意义的分布?
谢谢:)
答
如果你想生成有意义的分布样本,许多供应,例如:
x = np.random.exponential(2, 10000)
许多更多的是在scipy.stats
:
from scipy import stats
stats.gausshyper.rvs(a, b, c, z, size=10000)
要做到自定义喜欢你想要的东西,你可以用scipy.stats.rv_continuous
或rv_discrete
创建你自己的发行版,你可以在其中定义无论你想要的pdf还是pmf。
或者,您例如一个简单的黑客可能是:
np.random.choice([1, 2, 2, 3, 3, 3, 3, 3, 3, 3], size=10000)
+0
真聪明破解;谢谢! :) – user3427495
我没有看到任何“不正确”与您的代码。你打算使用'标签'样本做什么?另外,'y == 0'在任何地方都会是'False',因为'y'样本的下限是'1'。 – askewchan