2014-05-14 6 views
1

내가 축 제대로하기 위해 사투를 벌인거야 :하기 matplotlib와 NumPy와 histogram2d 축 문제

나는 xy 값을 가지고, 그리고 (상관 관계를 조사하기) 2 차원 히스토그램을 플롯합니다. 왜 각 축마다 0-9의 한계가있는 히스토그램을 얻습니까? 실제 가치 범위를 표시하려면 어떻게해야합니까?

이 최소한의 예입니다 내가 (3, 3)에서 빨간색 "스타"를 참조하십시오 기대 : 만약 내가 제대로 이해하고

import numpy as np 
import matplotlib.pyplot as plt 

x = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 3) 
y = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 3) 
xedges = range(5) 
yedges = range(5) 
H, xedges, yedges = np.histogram2d(y, x) 
im = plt.imshow(H, origin='low') 
plt.show() 

histogram2d

답변

3

나는 문제가 두 가지 생각 : 둘째

H, xedges, yedges = np.histogram2d(y, x,bins=5) 

을 축 값을 수행 할 수 있습니다 설정 :

첫째

당신이 (가 기본값으로 10으로 설정 것) 당신의 히스토그램 5 개 쓰레기통을 가져야한다 the histogram2d man pages 따라 상기 extent 파라미터를 사용

im = plt.imshow(H, interpolation=None, origin='low', 
       extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]]) 

enter image description here

1

, 당신은 단지 interpolation='none'

import numpy as np 
import matplotlib.pyplot as plt 

x = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 3) 
y = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 3) 
xedges = range(5) 
yedges = range(5) 
H, xedges, yedges = np.histogram2d(y, x) 
im = plt.imshow(H, origin='low', interpolation='none') 
를 설정해야

enter image description here

그럴까요?

+0

사실, 빨간색 사각형은 여전히 ​​(5,5)에 있으며 실제 데이터 값을 반영하도록 비늘을 원합니다. 빨간색 사각형은 (3,3)에 있어야합니다. – tamasgal

+0

두 가지 모두, '범위'+'interoplation = 'none'이 필요합니다. – tacaswell