2013-07-08 26 views
5

Hãy tha thứ cho tôi nếu đây là câu hỏi lặp lại, tôi đã cố hết sức để tìm giải pháp. Điều này có vẻ rất đơn giản nhưng tôi dường như không thể tìm thấy bất cứ điều gì áp dụng.biểu đồ khối u với 3 biến số

Tôi đang cố gắng tạo bản đồ (như bản đồ nhiệt) bằng cách sử dụng dữ liệu từ các mảng có khối u 3-D. Dữ liệu về cơ bản được sắp xếp như sau:

x_axis = ([1, 4, 6]) 
y_axis = ([2, 5, 7]) 
z_axis = ([5, 8, 9]) 

(bộ dữ liệu của tôi thực sự lớn hơn ... đôi khi hàng trăm nghìn mục nhập).

vì vậy tôi có giá trị z_axis được kết hợp với toạ độ x và tọa độ y ... ví dụ: điểm (1,2) có giá trị 5 được liên kết với nó.

Tất cả những gì tôi muốn làm là vẽ đồ thị theo cách sao cho giá trị z được tính trung bình cho bất kỳ kích thước thùng nào mà tôi chỉ định và được mã hóa màu như bản đồ nhiệt. Vì vậy, ví dụ, nếu tôi có 10 điểm dữ liệu nằm trong một thùng nhất định, giá trị z của chúng sẽ được tính trung bình và giá trị đó sẽ rơi ở đâu đó trên phổ màu.

Cảm ơn bạn đã trợ giúp bạn có thể cung cấp.

Trả lời

6

Từ np.histogram2d:

import matplotlib.pyplot as plt 
H, xedges, yedges =np.histogram2d(x_axis, y_axis, bins=10, weights=z_axis) 
extent = [yedges[0], yedges[-1], xedges[-1], xedges[0]] 
plt.imshow(H, extent=extent, interpolation='nearest') 
plt.colorbar() 
plt.show() 

Bin đếm được một cách dễ dàng thay đổi.

Như Jamie chỉ ra trong các ý kiến ​​nếu bạn muốn với mức trung bình của các điểm trong mỗi thùng:

numbins=10 
H, xedges, yedges =np.histogram2d(x_axis, y_axis, bins=numbins, weights=z_axis) 
count, x, y =np.histogram2d(x_axis, y_axis, bins=numbins) 
H/=count 
+0

Nếu ông muốn trung bình, không tiền, bạn sẽ phải chạy 'np.histogram2d' lần nữa mà không đối số từ khóa 'weights' để nhận số đếm trong mỗi thùng và vẽ phân chia của cả hai mảng. – Jaime

+0

Đó là một điểm tốt, tôi đã không hoàn toàn đọc câu hỏi theo cách đó. Tôi nghĩ anh ấy đang nói nó là mảng nên được chuẩn hóa cho màu sắc, nhưng plt không quan tâm cả hai cách. – Daniel

+0

Cảm ơn cả hai ... thói quen này hoạt động tốt đẹp. – Teachey

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