gpt4 book ai didi

Python Matplotlib - 未对齐的网格线和颜色填充

转载 作者:行者123 更新时间:2023-11-28 18:05:04 25 4
gpt4 key购买 nike

我正在使用以下代码生成一种二进制热图:

import numpy as np
import matplotlib.colors as mlc
import matplotlib.pyplot as mlp

states = ['AAAA', 'BBBB', 'CCCC', 'DDDD']
walk = [1, 2, 3, 2, 3, 2, 3, 2, 3, 2]

states_len = len(states)
walk_len = len(walk)

img = np.zeros((states_len, walk_len), dtype=float)

for i, s in enumerate(walk):
img[s, i] = 1.0

figure, ax = mlp.subplots()

color_map = mlc.LinearSegmentedColormap.from_list('ColorMap', [(1.000, 1.000, 1.000), (0.984, 0.501, 0.447)])
ax.imshow(img, cmap=color_map, interpolation='none')

ax.set_xlabel('Steps', fontsize=13)
ax.set_xticks(np.arange(0, walk_len, 1))
ax.set_xticks(np.arange(-0.5, walk_len, 1), minor=True)
ax.set_xticklabels(np.arange(1, walk_len + 1, 1))

ax.set_ylabel('States', fontsize=13)
ax.set_yticks(np.arange(0, states_len, 1))
ax.set_yticks(np.arange(-.5, states_len, 1), minor=True)
ax.set_yticklabels(states)

ax.grid(which='minor', color='k')

ax.set_title('Walkplot (Sequence)', fontsize=15, fontweight='bold')

它产生了奇怪的结果:

Screenshot

您可能会注意到,色点看起来没有与网格正方形对齐。最重要的是,有时网格线的尺寸不统一,有些看起来比其他的大。

我认为它一定与宽高比或图形大小有关,但我对潜在的修复一无所知。我该如何解决这个问题?

我当前的设置:

  • Python 3.6 x64
  • PyCharm 2018.1

最佳答案

正如评论所指出的那样,问题似乎在更高的 DPI 下消失了,对于 future 的用户,如下所示,

50 DPI - 图尺寸 8、6

100 DPI - 图大小 8. 6

但是它也受 figsize 参数的影响,使用 matplotlib rcParamsfigsize(height, width) 设置figure 的构造中 - 较大的图形需要更高的 DPI 才能使显示问题消失(尽管可能需要查看全尺寸图像才能看到效果,而不是内联显示), 即

50 DPI - 图尺寸 20,16

100 DPI - 图尺寸 20,16

300 DPI - 图尺寸 20,16

关于Python Matplotlib - 未对齐的网格线和颜色填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53998166/

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