Matplotlib में दो अलग-अलग समय अंतराल वाली टाइम सीरीज़ को एक ही प्लॉट पर दिखाने के लिए plot_date() और DateFormatter का उपयोग करें।
चरण
- फिगर आकार सेट करें और पैडिंग समायोजित करें
x1, y1औरx2, y2डेटा बिंदु बनाएं- फिगर और सबप्लॉट्स बनाएं
(x1, y1)और(x2, y2)डेटा बिंदुओं के साथ डेट प्लॉट करें- X-अक्ष टिक लेबल्स का मेजर फॉर्मेटर सेट करें
tick_params()से xtick लेबल 45 डिग्री घुमाएंplt.show()से प्रदर्शित करें
उदाहरण
import matplotlib.pyplot as plt
from matplotlib.dates import date2num, DateFormatter
import datetime as dt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# पहली सीरीज़: 2 बिंदु
x1 = [date2num(dt.datetime(2021, 1, 15, 1, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 9, 1, 1))]
y1 = [6, 2]
# दूसरी सीरीज़: 5 बिंदु (अलग समय अंतराल)
x2 = [date2num(dt.datetime(2021, 1, 15, 2, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 4, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 6, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 8, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 10, 1, 1))]
y2 = [3, 6, 5, 4, 1]
fig, ax = plt.subplots()
ax.plot_date(x1, y1, 'o--') # सर्कल मार्कर + डैश लाइन
ax.plot_date(x2, y2, 'o:') # सर्कल मार्कर + डॉटेड लाइन
# समय फॉर्मेट: HH:MM:SS
ax.xaxis.set_major_formatter(DateFormatter('%H:%M:%S'))
ax.tick_params(rotation=45)
plt.show()
आउटपुट
एक ही प्लॉट पर दो टाइम सीरीज़: पहली (लाल, डैश) में 2 बिंदु, दूसरी (नीला, डॉटेड) में 5 बिंदु, अलग-अलग समय अंतराल पर। X-अक्ष समय दिखाता है।
मुख्य बिंदु
date2num()datetime ऑब्जेक्ट को Matplotlib के आंतरिक फ्लोट फॉर्मेट में बदलता हैplot_date()स्वचालित रूप से X-अक्ष को डेट/टाइम के रूप में फॉर्मेट करता हैDateFormatterकस्टम समय फॉर्मेट की अनुमति देता है- अलग-अलग मार्कर/लाइन स्टाइल (
'o--','o:') सीरीज़ को अलग करने में मदद करते हैं
आधुनिक विकल्प (Pandas + Seaborn)
# Pandas datetime इंडेक्स के साथ आसान
df1 = pd.DataFrame({'time': pd.to_datetime(x1), 'value': y1})
df2 = pd.DataFrame({'time': pd.to_datetime(x2), 'value': y2})
sns.lineplot(data=df1, x='time', y='value')
sns.lineplot(data=df2, x='time', y='value')