2014-04-30 5 views
0

matplotlib부터 시작하여 거품 형 차트를 생성하고 싶습니다. the scatter demo으로 시작했지만 내 데이터를 준비하는 방법을 이해할 수 없습니다.matplotlib 산점도 데이터를 정렬하는 방법은 무엇입니까?

enter image description here

내 코드가

import matplotlib.pyplot as plt 

x = [1, 2] 
y = [1, 2] 
x_label = ["a", "b"] 
y_label = ["x", "y"] 
size = [100, 200, 300, 400] # I tried wild combinations here 
plt.xticks(x, x_label) 
plt.yticks(y, y_label) 
plt.scatter(x, y, s=size, alpha=0.5) 
plt.show() 

이었다 이것은,이 다음과 같은 플롯 (올바른 축 생성 내 목표는 (: 2 : 4 : 3 표면이 비율이 1에있는)이를 얻을 수 있습니다 상대적 크기 1의 거품 : 2)

enter image description here

나는 데이터 입력을 포맷하는 방법을 모른다,,932 10은 len(x)*len(y) 요소로 구성되어야하지만 어떻게 정렬해야합니까?

+0

생성; 'x = [1,1,2,2]'와'y = [1,2,1,2]'가 필요합니다. – jmetz

+0

(그리고 나서'xticks'와'yticks'에서'x'와'y'를'[1,2]'와'[1,2]'로 바꿉니다. – jmetz

+0

이것입니다! 감사. 이제는 (모든 조합을 포괄하기 위해) 세 개의 테이블에서 모든 트리플릿을 생성해야한다는 것을 이해합니다. 답장을 수락 할 수 있도록 의견을 복사/붙여 넣기 하시겠습니까? – WoJ

답변

2

플롯 명령이 잘못되었습니다. 플롯 할 각 점에 대해 xy을 지정해야하므로 xy에 대해 4 개의 값이 지정됩니다.

import matplotlib.pyplot as plt 

x = [1, 2,1,2] 
y = [1, 1,2,2] 
x_label = ["a", "b"] 
y_label = ["x", "y"] 
size = [100, 200, 300, 400] # I tried wild combinations here 
plt.xticks([1,2], x_label) 
plt.yticks([1,2], y_label) 
plt.scatter(x, y, s=size, alpha=0.5) 
plt.show() 

(특히 x와 y의 형태에 대해)을 docs for more info 참조에만 두 점을 그려했습니다

enter image description here