2011-04-29 234 views
25

當使用matplotlib和等高線圖時,我無法讓顏色條顯示爲我想要的。我已經閱讀了許多類似的例子,但仍然無法得到我想要的。Python/Matplotlib - 顏色條範圍和顯示值

在下面的圖片中,我想改變兩件事情。我想要在顏色欄上顯示最小值和最大值(最大值應爲2.0,最小值爲-0.1)。這兩個值應該在色條的邊緣。另外,我希望顏色條在每個顏色轉換處顯示值。例如。在下面的圖中,在2.1和1.8之間,有另一個顏色轉換,其中不顯示該值。

任何人都可以幫我嗎?我想我可能需要使用規範,但目前爲止還沒有效果。

感謝,

enter image description here

代碼:

import numpy as np 
import matplotlib.pyplot as plt 

xi = np.array([0., 0.5, 1.0]) 
yi = np.array([0., 0.5, 1.0]) 
zi = np.array([[0., 1.0, 2.0], 
       [0., 1.0, 2.0], 
       [-0.1, 1.0, 2.0]]) 

plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k') 
plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet) 
plt.colorbar() 
plt.show() 

回答

27

如果我正確你想要什麼瞭解,我想這應該這樣做:

import numpy as np 
import matplotlib.pyplot as plt 

xi = np.array([0., 0.5, 1.0]) 
yi = np.array([0., 0.5, 1.0]) 
zi = np.array([[0., 1.0, 2.0], 
       [0., 1.0, 2.0], 
       [-0.1, 1.0, 2.0]]) 

v = np.linspace(-.1, 2.0, 15, endpoint=True) 
plt.contour(xi, yi, zi, v, linewidths=0.5, colors='k') 
plt.contourf(xi, yi, zi, v, cmap=plt.cm.jet) 
x = plt.colorbar(ticks=v) 
print x 
plt.show() 

enter image description here

+0

正是我想要的,謝謝! – 2011-04-29 18:15:54