Khi tạo một ô hexbin trong matplotlib, tôi thấy rằng các hàng gạch hình lục giác xen kẽ có kích thước khác nhau, đôi khi đáng kể như vậy. đang trình diễn này cho thấy tác dụng:Kích thước gạch không đều trong matplotlib hexbin
from matplotlib import pyplot as plt
from matplotlib import cm as cm
from matplotlib import mlab as ml
import numpy as np
n = 1e5
x = y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z1 = ml.bivariate_normal(X, Y, 2, 2, 0, 0)
Z2 = ml.bivariate_normal(X, Y, 4, 1, 1, 1)
ZD = Z2 - Z1
x = X.ravel()
y = Y.ravel()
z = ZD.ravel()
plt.subplot(111)
plt.hexbin(x, y, C=z, gridsize=30, cmap=cm.jet, bins=None)
plt.axis([x.min(), x.max(), y.min(), y.max()])
cb = plt.colorbar()
cb.set_label('mean value')
plt.show()
Trong this image, với một gridsize 30, bạn có thể thấy rằng hàng thay thế được squished một chút theo chiều dọc:
Hiệu quả không phải là rất quan trọng, nhưng trong this magnified view của cùng một âm mưu hexbin nhưng với một lưới là 80, các hàng nhỏ gần bằng một nửa kích thước của các hàng lớn. (Các dữ liệu mẫu được tạo ra bắt đầu mis-phù hợp với lưới điện, quá, nhưng đó là một artifact không quan trọng.)
Các tài liệu hexbin đọc:
gridsize: [100 | số nguyên]
Số hình lục giác theo hướng x, mặc định bằng 100. Số lượng hình lục giác tương ứng theo hướng y được chọn sao cho hình lục giác gần như bình thường. Ngoài ra, lưới có thể là một tuple với hai yếu tố xác định số lượng hình lục giác theo hướng x và hướng y.
Nó chỉ đảm bảo rằng hình lục giác là "xấp xỉ" thường xuyên, nhưng có vẻ như, đặc biệt là trong các trường hợp như hình ảnh 80-lưới ở trên, hình lục giác có thể được thực hiện gần hơn thường xuyên bằng cách giảm số hàng những hàng nhỏ có thể được mở rộng và thường xuyên hơn. Hoặc, các hàng có kích thước bình thường có thể được thu nhỏ theo chiều dọc trong khi các hàng nhỏ được mở rộng theo chiều dọc, giữ cho tất cả các hàng có cùng chiều cao, ngay cả khi các ô không được định hình thường xuyên.
Nguyên nhân của sự bất thường này là gì và có thể tránh được không?