我努力让轴正确:
我已获得x
和y
值,并希望在二维直方图中绘制它们(以检查相关性)。为什么我会在每个轴上得到一个限制范围为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()
答案 0 :(得分:3)
我认为这个问题是双重的:
首先你的直方图应该有5个分区(默认设置为10):
H, xedges, yedges = np.histogram2d(y, x,bins=5)
其次,要设置轴值,您可以按照the histogram2d
man pages使用extent
参数:
im = plt.imshow(H, interpolation=None, origin='low',
extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])
答案 1 :(得分: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')
看起来不错吗?