Cách thông thường vấn đề này được xử lý là để có âm mưu với một số tách nhỏ. Này được thực hiện theo mặc định khi plt.hist
được đưa ra nhiều bộ dữ liệu:
import pylab as plt
x = 200 + 25*plt.randn(1000)
y = 150 + 25*plt.randn(1000)
n, bins, patches = plt.hist([x, y])
Bạn thay vì để chồng họ (điều này có thể được thực hiện trên sử dụng lập luận histtype='barstacked'
) nhưng lưu ý rằng thứ tự là không chính xác .
Điều này có thể được cố định bằng cách kiểm tra riêng từng cặp điểm để xem điểm nào lớn hơn và sau đó sử dụng zorder
để đặt cái nào đến trước. Để đơn giản tôi đang sử dụng đầu ra của mã trên (ví dụ n là hai mảng xếp chồng lên nhau trong những số điểm trong mỗi bin cho x và y):
n_x = n[0]
n_y = n[1]
for i in range(len(n[0])):
if n_x[i] > n_y[i]:
zorder=1
else:
zorder=0
plt.bar(bins[:-1][i], n_x[i], width=10)
plt.bar(bins[:-1][i], n_y[i], width=10, color="g", zorder=zorder)
Dưới đây là hình ảnh kết quả:
Bằng cách thay đổi thứ tự như thế này, hình ảnh trông rất kỳ lạ thực sự, đây có lẽ là lý do tại sao nó không được thực hiện và cần một hack để làm điều đó. Tôi sẽ gắn bó với phương pháp tách nhỏ, bất kỳ ai sử dụng các ô này đều giả sử chúng có cùng giá trị x.
Nếu bạn không thực sự muốn có 'alpha <1' hơn là chỉ tìm ra màu của màu mờ trên đầu trang của màu trắng là gì và sử dụng các thanh màu đục. – tacaswell
Bạn nên bao gồm mã bạn đã sử dụng để tạo ra cốt truyện, vì ít người có khả năng viết toàn bộ mã cho bạn hơn là sửa mã hiện tại của bạn. – hooy
Mã bạn đã sử dụng để tạo biểu đồ này là gì? –