簡體   English   中英

Python Matplotlib - 未對齊的網格線和顏色填充

[英]Python Matplotlib - Misaligned Grid Lines and Color Fills

我正在使用以下代碼生成一種二進制熱圖:

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')

它產生了奇怪的結果:

截圖

正如您可能注意到的那樣,顏色斑點看起來沒有相對於網格方塊排列。 最重要的是,有時網格線的大小不均勻,有些看起來比其他大。

我認為它必須與縱橫比或數字大小相關,但我對一個潛在的修復無能為力。 我該如何解決這個問題?

我目前的設置:

  • Python 3.6 x64
  • PyCharm 2018.1

由於評論表明問題似乎在DPI較高時消失,對於未來的用戶,如下所示,

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM