gpt4 book ai didi

python - Matplotlib 的 matshow 未与网格对齐

转载 作者:太空狗 更新时间:2023-10-30 01:58:24 25 4
gpt4 key购买 nike

我有一个代表网格的 6x6 矩阵。在该网格的一部分,我有一个较小的网格 (3x3),如下所示:

In [65]:

arr = np.zeros((6,6))
arr[0:3, 0:3] = 1
arr
Out[65]:
array([[ 1., 1., 1., 0., 0., 0.],
[ 1., 1., 1., 0., 0., 0.],
[ 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]])

我想绘制它,但 matplotlib 未对齐它,如下所示。红色方 block 应该覆盖水平和垂直轴上从 0 到 3 的区域。

In [88]:

plt.matshow(arr)
plt.grid()

enter image description here

我该如何解决这个问题?谢谢

最佳答案

您可以对标签使用主要刻度,对网格使用次要刻度。

考虑:

import matplotlib.pyplot as plt
import numpy as np

arr = np.zeros((6,6))
arr[0:3, 0:3] = 1

plt.matshow(arr)

# This is very hack-ish
plt.gca().set_xticks([x - 0.5 for x in plt.gca().get_xticks()][1:], minor='true')
plt.gca().set_yticks([y - 0.5 for y in plt.gca().get_yticks()][1:], minor='true')
plt.grid(which='minor')

plt.show()

显示:

Output

诀窍就是这两行:

plt.gca().set_xticks(..., minor='true')
plt.grid(which='minor')

关于python - Matplotlib 的 matshow 未与网格对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28885279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com