1

我正在尝试复制矩阵邻接可视化,如此 D3.js 示例中所示。请注意,每个单元格都被填充,导致每个单元格周围有一个白色边框。

这是我到目前为止所得到的:

img = matplotlib.pyplot.imshow(m, interpolation='none')
img.axes.xaxis.tick_top()
img.axes.xaxis.set_ticks_position('none')
img.axes.yaxis.set_ticks_position('none')
img.axes.spines['top'].set_color('none')
img.axes.spines['bottom'].set_color('none')
img.axes.spines['left'].set_color('none')
img.axes.spines['right'].set_color('none')
matplotlib.pyplot.set_cmap('gray_r')
matplotlib.pyplot.xticks(range(len(m)), G.nodes(), rotation='vertical')
matplotlib.pyplot.yticks(range(len(m)), G.nodes(), rotation='horizontal')

我已经研究了遍历每个单元格的方法以及其他插值技术,但我真的很想完全不进行插值,因为我想保持单元格是正方形的。有没有人尝试过这样做?

4

1 回答 1

3

一种可能的解决方案是使用 的pcolor方法pyplot,因为它接受一个 kwarg edgecolor

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(6)
y = np.arange(6)

X, Y = np.meshgrid(x, y)

Z = np.random.rand(5, 5)

ax = plt.subplot(111, aspect='equal') # To make the cells square
ax.pcolor(X, Y, Z,
          edgecolor='white',          # Color of "padding" between cells
          linewidth=2)                # Width of "padding" between cells


plt.show()

在此处输入图像描述

于 2013-07-13T14:51:58.763 回答