将坐标打印为矩阵matplotlib python

将坐标打印为矩阵matplotlib python,python,matplotlib,wxpython,Python,Matplotlib,Wxpython,我有一组坐标,比如说[(2,3),(45,4),(3,65)] 我需要将它们绘制为一个矩阵。无论如何,我可以在matplotlib中这样做,所以我希望它具有这样的外观编辑:我的原始答案使用了ax.scatter。这有一个问题:如果两个点并排,ax.scatter可能会根据比例在它们之间留出一点空间: 例如,与 data = np.array([(2,3),(3,3)]) 以下是放大的详细信息: 因此,这里有一个解决此问题的替代解决方案: import matplotlib.pyplot as

我有一组坐标,比如说
[(2,3),(45,4),(3,65)]

我需要将它们绘制为一个矩阵。无论如何,我可以在matplotlib中这样做,所以我希望它具有这样的外观

编辑:我的原始答案使用了
ax.scatter
。这有一个问题:如果两个点并排,
ax.scatter
可能会根据比例在它们之间留出一点空间:

例如,与

data = np.array([(2,3),(3,3)])
以下是放大的详细信息:

因此,这里有一个解决此问题的替代解决方案:

import matplotlib.pyplot as plt
import numpy as np

data = np.array([(2,3),(3,3),(45,4),(3,65)])
N = data.max() + 5

# color the background white (1 is white)
arr = np.ones((N,N), dtype = 'bool')
# color the dots black (0)
arr[data[:,1], data[:,0]] = 0

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

ax.imshow(arr, interpolation='nearest', cmap = 'gray')
ax.invert_yaxis()
# ax.axis('off')
plt.show()

无论放大多少,位于(2,3)和(3,3)处的相邻正方形将保持并排


不幸的是,与
ax.scatter
不同,使用
ax.imshow
需要构建
N x N
数组,因此它可能比使用
ax.scatter
更占用内存。但是,除非
数据
包含非常大的数字,否则这应该不是问题

先生,您是一位传奇人物。非常感谢您