यदि आपके पास अलग-अलग नमूना आकार हैं, तो एकल y- अक्ष के साथ वितरण की तुलना करना मुश्किल हो सकता है। उदाहरण के लिए:
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()
इस स्थिति में, आप अपने दो डेटा सेट अलग-अलग अक्षों पर बना सकते हैं। ऐसा करने के लिए, आप matplotlib का उपयोग करके अपना हिस्टोग्राम डेटा प्राप्त कर सकते हैं, अक्ष को साफ़ कर सकते हैं, और फिर इसे दो अलग-अलग अक्षों पर फिर से प्लॉट कर सकते हैं (बिन किनारों को स्थानांतरित कर सकते हैं ताकि वे ओवरलैप न हों):
#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)
सिर्फ मामले में, साजिश रचने से पहले इसे स्थापित करना अच्छा नहीं होगा ?