Trong trường hợp bạn có các cỡ mẫu khác nhau, có thể khó so sánh các phân phối với một trục y. Ví dụ:
import numpy as np
import matplotlib.pyplot as plt
#makes the data
y1 = np.random.normal(-2, 2, 1000)
y2 = np.random.normal(2, 2, 5000)
colors = ['b','g']
#plots the histogram
fig, ax1 = plt.subplots()
ax1.hist([y1,y2],color=colors)
ax1.set_xlim(-10,10)
ax1.set_ylabel("Count")
plt.tight_layout()
plt.show()
Trong trường hợp này, bạn có thể vẽ hai tập dữ liệu của mình trên các trục khác nhau. Để làm như vậy, bạn có thể lấy dữ liệu biểu đồ của mình bằng matplotlib, xóa trục và sau đó vẽ lại nó trên hai trục riêng biệt (dịch chuyển các cạnh của thùng sao cho chúng không trùng nhau):
#sets up the axis and gets histogram data
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.hist([y1, y2], color=colors)
n, bins, patches = ax1.hist([y1,y2])
ax1.cla() #clear the axis
#plots the histogram data
width = (bins[1] - bins[0]) * 0.4
bins_shifted = bins + width
ax1.bar(bins[:-1], n[0], width, align='edge', color=colors[0])
ax2.bar(bins_shifted[:-1], n[1], width, align='edge', color=colors[1])
#finishes the plot
ax1.set_ylabel("Count", color=colors[0])
ax2.set_ylabel("Count", color=colors[1])
ax1.tick_params('y', colors=colors[0])
ax2.tick_params('y', colors=colors[1])
plt.tight_layout()
plt.show()
pyplot.hold(True)
trước khi âm mưu, chỉ trong trường hợp?