小编Joe*_*elt的帖子

在matplotlib imshow中调整网格线和刻度线

我正在尝试绘制一个值矩阵,并希望添加网格线以使值之间的边界更清晰.不幸的是,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));
Run Code Online (Sandbox Code Playgroud)

没有网格线的图像和错误位置的刻度线 在此输入图像描述

ax.grid(color='w', linestyle='-', linewidth=2)
Run Code Online (Sandbox Code Playgroud)

网格线位于错误位置的图像:

在此输入图像描述

python matplotlib imshow

23
推荐指数
5
解决办法
3万
查看次数

标签 统计

imshow ×1

matplotlib ×1

python ×1