初学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的所以这可以被绘制,我可以让我的图表看起来漂亮/可能保持有意义的分布?

谢谢:)

+0

我没有看到任何“不正确”与您的代码。你打算使用'标签'样本做什么?另外,'y == 0'在任何地方都会是'False',因为'y'样本的下限是'1'。 – askewchan

如果你想生成有意义的分布样本,许多供应,例如:

x = np.random.exponential(2, 10000) 

许多更多的是在scipy.stats

from scipy import stats 
stats.gausshyper.rvs(a, b, c, z, size=10000) 

要做到自定义喜欢你想要的东西,你可以用scipy.stats.rv_continuousrv_discrete创建你自己的发行版,你可以在其中定义无论你想要的pdf还是pmf。

或者,您例如一个简单的黑客可能是:

np.random.choice([1, 2, 2, 3, 3, 3, 3, 3, 3, 3], size=10000) 

1223333333

+0

真聪明破解;谢谢! :) – user3427495