如何在matplotlib中绘制像素而不是点?

Die*_*ego 2 python matplotlib

对于所有i,我有一组点{(x1,y1),(x2,y2),....,(xn,yn)} whit x_i和y_i整数.我希望绘制它们,但是我希望它们不是点,而是它们是方形像素,中心点和边长1,从点的左边开始1/2,到右边的1/2结束......例如,点(1,1)应该是:点(1,1)

Luc*_*cas 7

你需要的是imshow.一个小例子,其中每个正方形是一个像素(3x3的非常小的图像).颜色由数组的数据值给出.如果数据只有0和1,则只有2种颜色.

import matplotlib.pyplot as plt

data = np.random.random(size=(3, 3))

plt.imshow(data, interpolation='nearest')
plt.xticks(np.arange(0.0, 2.5, 1), np.arange(0.5, 2, 0.5))
plt.yticks(np.arange(2, -0.5, -1), np.arange(0.5, 2, 0.5))
Run Code Online (Sandbox Code Playgroud)

现在的例子

注意interpolation='nearest'这导致它不插入点,而是显示我们的正方形.