簡體   English   中英

如何使用contourf從imshow獲取對數縮放的colobar?

[英]How to get the logscaled colobar from imshow with contourf?

我正在嘗試將matflotlib與matplotlib一起使用,並且希望我的contourf colobar具有與imshow顏色條相同的形狀,並且具有對數刻度通常具有的所有刻度。

matplotlib是否允許這種“轉換”?

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import LogNorm


A = np.random.uniform(low=10e-3, high=10e3, size=(100,100))

fig, ax = plt.subplots()
im = ax.imshow(A, interpolation='bilinear', cmap=cm.jet, norm=LogNorm())
plt.colorbar(im)

在此處輸入圖片說明

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import LogNorm


A = np.random.uniform(low=10e-3, high=10e3, size=(100,100))

fig, ax = plt.subplots()
ctf = ax.contourf(A, 100, cmap=cm.jet, norm=LogNorm())
plt.colorbar(ctf)

在此處輸入圖片說明

等高線圖的顏色條當然應該顯示等高線的實際水平。 人們將需要手動設置級別,然后指定一個相應的代碼。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import LogNorm
import matplotlib.ticker as mticker


A = np.sort(np.logspace(-3, 3, num=100*100)).reshape(100,100)

levels = np.logspace(-3,3,num=101)

fig, ax = plt.subplots()

levs = np.power(10, np.arange(-3., 4., 0.1))
cntr = ax.contourf(A, cmap=cm.jet, levels=levs, norm=LogNorm())

cb = plt.colorbar(cntr, ticks=mticker.LogLocator())
plt.show()

在此處輸入圖片說明

暫無
暫無

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

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