簡體   English   中英

matplotlib.pyplot.pcolor在符號比例尺上的不同邊的長度不同

[英]Differing length of matplotlib.pyplot.pcolorfast edges on symlog scale

我目前正在嘗試使用對數刻度創建彩色網格圖。 因為我要包括從0到1的區域,所以我使用“符號”作為比例,而不是“對數”。

fig, ax = plt.subplots()
Z = np.random.random(size=(RATE_EXPONENT + 1,  BLOCK_EXPONENT + 1))
x_edges = [0] + [AXIS_BASE ** i for i in range(RATE_EXPONENT + 1)]
y_edges = [0] + [AXIS_BASE ** i for i in range(BLOCK_EXPONENT + 1)]
ax.set_xbound(0.0, MAX_FEE_RATE)
ax.set_ybound(0.0, MAX_CONFIRMATION_BLOCKS)
ax.set_xlabel('Fee rate in satoshis / byte')
ax.set_ylabel('Confirmation time in blocks')
ax.set_xscale('symlog')
ax.set_yscale('symlog')
ax.set_xticks(x_edges)
ax.set_yticks(y_edges)
ax.get_xaxis().set_major_formatter(ticker.ScalarFormatter())
ax.get_yaxis().set_major_formatter(ticker.ScalarFormatter())

colour_map = colors.LinearSegmentedColormap.from_list('GreenRed', ['red', 'green'], N=256)
ax.pcolorfast(x_edges, y_edges, Z, cmap=colour_map)
plt.show()

不幸的是,邊緣並沒有完全可預測的間隔到我知道如何輸入數據的地步,實際上,邊緣是根據縮放因子移動的。

供參考,這是所有縮小的外觀 供參考,這是所有縮小的外觀

這就是放大2到4的間隔時的樣子 這就是放大2到4的間隔時的樣子

如您所見,網格邊隨着我放大而移動。我還希望將邊以與軸刻度線相同的間隔放置,但是在pyplot文檔中沒有發現任何有用的東西。

任何幫助將非常感激!

PS:使用線性刻度而不是符號刻度可以工作。 使用xlim / ylim時也是一樣。

供參考,這是一張圖片

使用matplotlib.pyplot.pcolormesh代替matplotlib.axes.Axes.pcolorfast pcolorfast的文檔字符串說這是實驗性的,

“ ...它不支持軸的對數縮放...”,

從當前版本2.0.0開始。

暫無
暫無

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

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