我想绘制一个数值矩阵,并希望添加网格线以使值之间的边界更清晰。不幸的是,imshow决定将刻度标记放在每个体素的中间位置。是否可能:
a) 删除刻度标记但保留标签在相同位置
b) 在像素边界之间添加网格线?
import matplotlib.pyplot as plt
import numpy as np
im = plt.imshow(np.reshape(np.random.rand(100), newshape=(10,10)),
interpolation='none', vmin=0, vmax=1, aspect='equal');
ax = plt.gca();
ax.set_xticks(np.arange(0, 10, 1));
ax.set_yticks(np.arange(0, 10, 1));
ax.set_xticklabels(np.arange(1, 11, 1));
ax.set_yticklabels(np.arange(1, 11, 1));
ax.grid(color='w', linestyle='-', linewidth=2)
错误位置的网格线图像:
plt.imshow(..., extent=(0, 10, 10, 0));
- psychemedia