2010-03-15 26 views
21

Tôi đang sử dụng imshow() trong matplotlib như vậy:Tạo một Legend colormap trong Matplotlib

import numpy as np 
import matplotlib.pyplot as plt 
mat = '''SOME MATRIX''' 
plt.imshow(mat, origin="lower", cmap='gray', interpolation='nearest') 
plt.show() 

Làm thế nào để thêm một huyền thoại thể hiện các giá trị số cho các sắc thái khác nhau của màu xám. Đáng buồn thay, googling của tôi đã không phát hiện ra một câu trả lời :(

Cảm ơn bạn trước cho sự giúp đỡ

Vince

Trả lời

7

đơn giản, chỉ cần plt.colorbar():

import numpy as np 
import matplotlib.pyplot as plt 
mat = np.random.random((10,10)) 
plt.imshow(mat, origin="lower", cmap='gray', interpolation='nearest') 
plt.colorbar() 
plt.show() 
1

Như thường lệ, tôi hình dung nó ra ngay sau khi tôi hỏi nó;.). Đối với hậu thế, đây là lỗi của tôi tại đó:

m = np.zeros((1,20)) 
for i in range(20): 
    m[0,i] = (i*5)/100.0 
print m 
plt.imshow(m, cmap='gray', aspect=2) 
plt.yticks(np.arange(0)) 
plt.xticks(np.arange(0,25,5), [0,25,50,75,100]) 
plt.show() 

Tôi chắc chắn rằng có giải pháp thanh lịch hơn.

Vince

29

Có một BUILTIN colorbar() function trong pyplot.

+0

Perfect! Cảm ơn bạn. – Vince

+9

Nếu bạn đang sử dụng subplots, bạn có thể cần phải sử dụng nó như 'fig = plt.figure(); ax = fig.add_subplot (1,1,1); plot = ax.pcolor (dữ liệu); fig.colorbar (cốt truyện); ' –

+0

Ví dụ về mã sẽ tốt đẹp; Tôi nghĩ rằng giao thức là câu trả lời chỉ liên kết được coi là người nghèo. Sử dụng dễ nhất chỉ là 'plt.colorbar()' – wordsforthewise

Các vấn đề liên quan