2013-05-11 36 views
22

Vì vậy, tôi nghĩ điều này sẽ thực sự đơn giản, nhưng tôi đã gặp rất nhiều khó khăn trong việc tìm kiếm chính xác những gì tôi đang tìm kiếm trong một ví dụ dễ hiểu. Về cơ bản tôi muốn thực hiện các giai đoạn, vì vậy giả sử tôi có một mảng 2d, làm thế nào tôi có thể nhận được matplotlib để chuyển đổi này thành một âm mưu mà tôi có thể đính kèm tiêu đề, rìu và truyền thuyết (thanh màu) vào.Colorplot của mảng 2D matplotlib

Tôi đang tìm giải pháp xương trần cực kỳ đơn giản chỉ sử dụng những gì được yêu cầu sẽ hoạt động với bất kỳ mảng 2D nào.

Tôi chắc chắn điều này là đơn giản và tôi chỉ đang dày bằng cách nào đó, nhưng tôi thực sự gặp rất nhiều rắc rối với điều này.

Tôi đã làm công cụ với các ví dụ, nhưng chúng dường như không phù hợp với những gì tôi đang cố gắng làm: Tôi thích sự xuất hiện chung của biểu đồ này, tôi chỉ muốn có thể vượt qua 2dArray và có cùng kết quả này:

import numpy as np 
import matplotlib as ml 
import matplotlib.pyplot as plt 

H = [[1,2,3,4][5,6,7,8][9,10,11,12][13,14,15,16]] 

fig = plt.figure(figsize=(6, 3.2)) 

ax = fig.add_subplot(111) 
ax.set_title('colorMap') 
X,Y = np.meshgrid(xedges, yedges) 
plt.pcolormesh(X, Y, H) 
ax.set_aspect('equal') 

cax = fig.add_axes([0.12, 0.1, 0.78, 0.8]) 
cax.get_xaxis().set_visible(False) 
cax.get_yaxis().set_visible(False) 
cax.patch.set_alpha(0) 
cax.set_frame_on(False) 
plt.colorbar(orientation='vertical') 
plt.show() 
+0

'imshow' không hoạt động? http://matplotlib.org/gallery.html – tacaswell

+1

Và bạn có thể cho chúng tôi thấy những gì bạn đã thử không? – tacaswell

+0

nhấp vào hình ảnh giống như những gì bạn muốn, chúng bao gồm mã. – tacaswell

Trả lời

30

tôi sợ ví dụ được đăng của bạn không được làm việc, kể từ X và Y không được định nghĩa. Vì vậy, thay vì pcolormesh hãy sử dụng imshow:

import numpy as np 
import matplotlib.pyplot as plt 

H = np.array([[1, 2, 3, 4], 
       [5, 6, 7, 8], 
       [9, 10, 11, 12], 
       [13, 14, 15, 16]]) # added some commas and array creation code 

fig = plt.figure(figsize=(6, 3.2)) 

ax = fig.add_subplot(111) 
ax.set_title('colorMap') 
plt.imshow(H) 
ax.set_aspect('equal') 

cax = fig.add_axes([0.12, 0.1, 0.78, 0.8]) 
cax.get_xaxis().set_visible(False) 
cax.get_yaxis().set_visible(False) 
cax.patch.set_alpha(0) 
cax.set_frame_on(False) 
plt.colorbar(orientation='vertical') 
plt.show() 
+2

Xin lưu ý rằng bạn sẽ nhận được các chỉ mục mảng trong chú giải trục. Nếu các hàng và cột của bạn có các giá trị X và Y, hãy xem tham số 'level' của' imshow() ' – heltonbiker

2

Dưới đây là ví dụ đơn giản nhất mà có các dòng chính của mã:

import numpy as np 
import matplotlib.pyplot as plt 

H = np.array([[1, 2, 3, 4], 
      [5, 6, 7, 8], 
      [9, 10, 11, 12], 
      [13, 14, 15, 16]]) 

plt.imshow(H) 
plt.show() 
Các vấn đề liên quan