2014-04-04 2 views
1

matplotlib의 기능을 배우려고 노력하고 있지만 문제는 그래프를 테스트하기 위해 무작위로 데이터를 생성한다는 것입니다. 아무도 내가 여기서 잘못하고있는 것을 말해 줄 수 있습니까? 내가 x는 10 %의 1의를 개최 싶다면 예를 들어, 범위 내에서 데이터를 분산 할 수있는 방법이에 또한 초보자 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') 

, 20 %, 2의 70 % 3의 그래서 이것은 그래프로 할 수 있으며, 내 그래프를 만들 수 있습니다 예쁘게 보임/아마도 의미있는 배포판을 갖고 있을까요?

감사합니다 :)는

+0

내가 코드 아무것도 "잘못된"표시되지 않습니다. 당신은 무엇을 위해서'labels' 샘플을 사용하려고 했습니까? 또한'y == 0'은'y' 샘플의 하한선이'1'이므로 어디에서나'False'가됩니다. – askewchan

답변

2

의미있는 배포판에서 샘플을 생성 할 경우, 많은 사람들이 예를 들어, 공급 :

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) 

1223333333

+0

정말 영리한 해킹; 고맙습니다! :) – user3427495