2014-12-07 94 views
3

我有一個對數imshow圖,當創建顏色條時,它的軸標籤和刻度是對數的,但由於值的範圍很短(0-50),顏色條看起來像這樣:顏色條matplotlib上的日誌標籤

enter image description here

和我想它代替顯示爲0,5,10,20,50沿着軸線(對數間距)隔開。

我似乎無法得到這個工作。

感謝您的任何幫助。

回答

5

使用LogFormatter類並將labelOnlyBaseFalse

import matplotlib.pyplot as plt 
import numpy as np 
import matplotlib.colors 
from matplotlib.ticker import LogFormatter 

A = np.random.rand(50,50)*50 
plt.imshow(A, norm=matplotlib.colors.LogNorm()) 
formatter = LogFormatter(10, labelOnlyBase=False) 
cb = plt.colorbar(ticks=[1,5,10,20,50], format=formatter) 
plt.show() 
+0

完美,謝謝! – Jbarrell 2014-12-08 01:32:57