私は座標のセットを持ってい[(2,3),(45,4),(3,65)]
ます、行列としてそれらをプロットする必要があると言いますとにかくmatplotlibでこれを行うことができるので、この種の外観を持たせたいですhttp://imgur.com/Q6LLhmk
1095 次
1 に答える
3
編集:私の元の答えを使用しax.scatter
ました。これには問題があります。2つのポイントが並んでいる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
。data
ただし、非常に大きな数が含まれていない限り、これは問題にはなりません。
于 2013-02-13T12:51:09.717 に答える