1 Câu hỏi: Tạo NonUniformImage dựa trên mảng Numpy 2d với chiều rộng và chiều cao ô tùy chỉnh

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang cố gắng tạo "bản đồ nhiệt" với Matplotlib của Mảng Numpy 2d và tìm thấy tùy chọn NonUniformImage tại đây . Dưới đây là một phiên bản đơn giản. Thật không may, tôi không thể thay đổi x mà không thay đổi y. Lỗi mà pyhton Propmpts là: Axes don't match array shape

Ví dụ sinh sản

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.image import NonUniformImage
from matplotlib import cm

x = np.arange(6)
y = np.arange(6)
z = x[:, np.newaxis].dot(y[:, np.newaxis].transpose())

fig, ax = plt.subplots()
im = NonUniformImage(ax, interpolation='nearest', extent=(0, len(x)-1, 0, len(y)-1))
im.set_data(x, y, z)
ax.images.append(im)
ax.set_xlim(0, len(x)-1)
ax.set_ylim(0, len(y)-1)

Mục tiêu của tôi là vẽ sơ đồ dựa trên mảng Numpy 2d với 'các ô lưới tùy chỉnh'. Điều đó có nghĩa là tôi có thể gán x và y với chuỗi không đều (ví dụ np.array([0.5,3,8,15,15.4]). Tôi biết x và y được gán đại diện cho trung tâm của một ô nên điều cuối cùng tôi muốn giải quyết là âm mưu hoàn toàn hiển thị (nếu điều đó là có thể).

Làm cách nào tôi có thể tạo một hình ảnh có ràng buộc khác (không phải hình vuông), với chiều rộng và chiều cao tùy chỉnh tùy thuộc vào hai danh sách?

    
0
  1. Khi tôi chạy mã của mình, tôi nhận được hình ảnh này . Đây không phải là những gì bạn muốn? Hay bạn nhận được một kết quả khác?
    2019-05-08 22: 55: 18Z
  2. Không tôi có kết quả tương tự nhưng tôi chỉ có thể tạo hình ảnh có cùng kích thước (ví dụ: 6x6, 8x8 hoặc 21x21). Tôi muốn tạo một hình ảnh 60 x 29 và có chiều cao và chiều rộng tùy chỉnh tùy thuộc vào danh sách. Tôi đã thay đổi câu hỏi để làm cho nó rõ ràng hơn.
    2019-05-09 07: 30: 20Z
1 Câu trả lời                              1                         

Tôi cho rằng bạn đã phạm sai lầm khi xác định z. Có thể những gì bạn đang theo đuổi là

x = np.arange(6)
y = np.arange(8)
z = x[np.newaxis,:] * y[:, np.newaxis]
print(z.shape)

sao cho hình dạng là (8,6).

    
1
2019-05-09 11: 51: 01Z
nguồn đặt đây