📘 CodingMarble Learn

मैटप्लॉटलिब से डेटा दृश्यीकरण: रेखा, बार और हिस्टोग्राम

डेटा दृश्यीकरण का अर्थ है डेटा को चार्ट जैसे चित्रों में दिखाना, ताकि पैटर्न आसानी से दिखें। पायथन में हम मैटप्लॉटलिब का pyplot मॉड्यूल plt नाम से लाते हैं। रेखा प्लॉट समय के साथ बदलाव दिखाता है, बार ग्राफ़ अलग समूहों की तुलना करता है और हिस्टोग्राम दिखाता है कि मान दायरों (बिन) में कैसे फैले हैं। शीर्षक, अक्ष लेबल और लेजेंड चार्ट को साफ़ बनाते हैं, और plt.savefig() उसे चित्र फ़ाइल में सहेजता है।

🎬 कदम-दर-कदम कहानी

  1. चार्ट एक नज़र में वह दिखाता है जो संख्याओं की तालिका छिपा लेती है।
  2. रेखा प्लॉट बिंदुओं को क्रम से जोड़ता है: समय के साथ बदलाव के लिए।
  3. बार ग्राफ़ अलग समूहों की तुलना करता है: सबसे ऊँचा बार = सबसे बड़ा मान।
  4. हिस्टोग्राम हर मान को एक दायरे (बिन) में डालकर गिनता है।
  5. शीर्षक, x-y लेबल और लेजेंड चार्ट साफ़ करते हैं; savefig सहेजता है।
  6. आपकी बारी: चार्ट का प्रकार और बिन बदलकर वही डेटा अलग ढंग से देखें।

टिप: 3D दृश्य को घुमाने के लिए खींचें। ज़ूम के लिए दो उंगलियाँ इस्तेमाल करें।

🤔 आम शंकाएँ और उनके जवाब

तालिका है तो चार्ट क्यों बनाएँ?

तालिका में वही संख्याएँ हैं, पर आँख को एक-एक करके मिलाना पड़ता है। चार्ट बढ़ना, घटना और सबसे बड़ा मान एक साथ दिखा देता है।

रेखा प्लॉट कब ग़लत है?

जब x-मान किसी क्रम में न हों (जैसे विषयों के नाम), तो रेखा से जोड़ना ऐसा रुझान दिखाता है जो है ही नहीं। तब बार लें।

बार ग्राफ़ में बारों के बीच जगह क्यों होती है?

हर बार एक अलग समूह है। जगह बताती है कि ये जुड़े हुए दायरे नहीं हैं।

बिन क्या है?

बिन मानों का एक दायरा है, जैसे 58 से 72। हिस्टोग्राम गिनता है कि हर बिन में कितने मान गिरे।

ठीक किनारे पर पड़ा मान कहाँ जाता है?

दाईं ओर वाले बिन में, सिवाय सबसे आख़िरी किनारे के, जो आख़िरी बिन का होता है।

मेरा सहेजा चित्र ख़ाली क्यों है?

आपने plt.show() के बाद सहेजा। पहले plt.savefig(), फिर show()।

क्या हिस्टोग्राम का आकार बिन पर निर्भर है?

हाँ। कम बिन बारीकी छिपाते हैं; बहुत ज़्यादा बिन उसे ऊबड़-खाबड़ बनाते हैं। कदम 6 में 2, 5 और 7 आज़माएँ।

प्लॉट बनाने का उद्देश्य

डेटा दृश्यीकरण यानी संख्याओं को चार्ट और ग्राफ़ जैसे चित्रों में बदलना। हम प्लॉट इसलिए बनाते हैं कि:

import matplotlib.pyplot as plt   # pyplot = मैटप्लॉटलिब का प्लॉट वाला भाग

हर चार्ट का तरीका एक है: चार्ट बनाओ, सजाओ, फिर plt.show() या plt.savefig()।

रेखा प्लॉट

रेखा प्लॉट बिंदु लगाकर उन्हें क्रम से जोड़ता है। जब x-अक्ष पर समय या क्रम हो (दिन, महीने, साल) तब इस्तेमाल करें।

month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
sales = [20, 35, 30, 45, 50, 60]
plt.plot(month, sales, color='b', marker='o', linestyle='-', linewidth=2)
plt.show()

विकल्प: color, marker ('o', '*', 's'), linestyle ('-', '--', ':'), linewidth, markersize।

बार ग्राफ़

बार ग्राफ़ हर समूह का एक बार बनाता है। ऊँचाई मान दिखाती है। अलग-अलग चीज़ों (विषय, शहर, सामान) की तुलना के लिए।

subject = ['Eng', 'Hindi', 'Maths', 'Sci', 'SSt']
marks = [78, 85, 92, 70, 88]
plt.bar(subject, marks, color='teal', width=0.6)
plt.barh(subject, marks)     # आड़े बार
plt.show()

हिस्टोग्राम

हिस्टोग्राम दिखाता है कि मान कैसे फैले हैं। डेटा के दायरे को बराबर भागों में काटते हैं, जिन्हें बिन कहते हैं। हर मान एक बिन में गिरता है, और बार की ऊँचाई बताती है कि वहाँ कितने मान गिरे (बारंबारता)। बार आपस में सटे रहते हैं, क्योंकि दायरे लगातार हैं।

marks = [35,42,48,51,55,58,61,63,66,68,72,74,79,85,93]
plt.hist(marks, bins=[30,44,58,72,86,100], edgecolor='black')
plt.hist(marks, bins=5)     # न्यूनतम से अधिकतम तक 5 बराबर बिन

किनारे पर पड़ा मान (जैसे 58) दाईं ओर वाले बिन में जाता है; सिर्फ़ आख़िरी बिन अपना दायाँ किनारा भी रखता है।

बार ग्राफ़ या हिस्टोग्राम?

बार ग्राफ़: अलग समूह, बारों के बीच जगह। हिस्टोग्राम: एक संख्या-स्तंभ दायरों में कटा, बार सटे हुए।

शीर्षक, लेबल और लेजेंड

plt.plot(month, shopA, label='Shop A')
plt.plot(month, shopB, label='Shop B')
plt.title('Monthly Sales')
plt.xlabel('Month')
plt.ylabel('Sales (in thousand ₹)')
plt.legend()          # label= वाले नाम एक डिब्बे में
plt.grid(True)
plt.show()

लेजेंड छोटी कुंजी है जो बताती है कि कौन-सा रंग किस रेखा का है। इसके लिए हर plot में label= चाहिए।

पांडास से सीधे प्लॉट

df.plot(kind='line', x='Month', y='Sales')
df.plot(kind='bar', x='Subject', y='Marks')
df['Marks'].plot(kind='hist', bins=5)

प्लॉट सहेजना

plt.savefig('sales.png')                 # मौजूदा फ़ोल्डर में PNG चित्र
plt.savefig('c:/charts/sales.pdf')       # पूरे पथ के साथ PDF

savefig() को plt.show() से पहले लिखें। show() बंद होने के बाद चित्र ख़ाली हो जाता है और ख़ाली फ़ाइल सहेजी जाती है।

करके देखें: अपने हफ़्ते का चार्ट

7 दिन तक रोज़ फ़ोन पर बिताए मिनट लिखें। दिन बनाम मिनट का रेखा प्लॉट शीर्षक, लेबल और savefig('week.png') के साथ बनाएँ। फिर 10 दोस्तों की ऊँचाई (cm) पूछकर 4 बिन वाला हिस्टोग्राम बनाएँ। चलाने से पहले अनुमान लगाएँ कि कौन-सा बिन सबसे ऊँचा होगा। 3D के कदम 6 में बिन 2, 5 और 7 करके देखें कि आकार कैसे बदलता है।

मुख्य सूत्र और परिभाषाएँ

हल किए गए उदाहरण

1. कौन-सा चार्ट ठीक है: (a) 7 दिन का तापमान, (b) 5 विषयों के अंक, (c) 40 छात्रों की ऊँचाई?

(a) रेखा प्लॉट (समय के साथ बदलाव), (b) बार ग्राफ़ (अलग समूह), (c) हिस्टोग्राम (एक संख्या-स्तंभ का फैलाव)।

2. वर्ष [2021, 2022, 2023, 2024] बनाम छात्र [300, 340, 390, 420] का लाल डैश वाला, गोल मार्कर वाला रेखा प्लॉट बनाइए।

plt.plot([2021,2022,2023,2024], [300,340,390,420], color='r', linestyle='--', marker='o'); plt.show()

3. फल ['Apple','Mango','Banana'] की बिक्री [40, 65, 30] का बार ग्राफ़ 'Fruit Sales' शीर्षक और अक्ष लेबल के साथ बनाइए।

plt.bar(['Apple','Mango','Banana'], [40,65,30]); plt.title('Fruit Sales'); plt.xlabel('Fruit'); plt.ylabel('Units sold'); plt.show()

4. marks = [35,42,48,51,55,58,61,63,66,68,72,74,79,85,93], bins=[30,44,58,72,86,100]। हर बिन की बारंबारता निकालिए।

30–44: 35, 42 → 2। 44–58: 48, 51, 55 → 3। 58–72: 58, 61, 63, 66, 68 → 5। 72–86: 72, 74, 79, 85 → 4। 86–100: 93 → 1। कुल 15।

5. Shop A और Shop B की बिक्री एक चार्ट पर लेजेंड के साथ बनाकर 'compare.png' में सहेजिए।

plt.plot(month, a, label='Shop A'); plt.plot(month, b, label='Shop B'); plt.legend(); plt.savefig('compare.png'); plt.show()

6. एक छात्र ने पहले plt.show() और फिर plt.savefig('x.png') लिखा। फ़ाइल ख़ाली है। क्यों, और कैसे सुधारें?

show() चित्र दिखाकर साफ़ कर देता है, इसलिए ख़ाली चित्र सहेजा गया। savefig() को show() से पहले रखें।

आम गलतियाँ

अभ्यास क्विज़

1. प्लॉट बनाने के लिए मैटप्लॉटलिब का कौन-सा मॉड्यूल?
2. साल भर की मासिक वर्षा के लिए सबसे अच्छा चार्ट:
3. plt.hist() दिखाता है:
4. लेजेंड के लिए plt.plot() में कौन-सा तर्क चाहिए?
5. चार्ट को चित्र के रूप में कौन सहेजता है?

अभ्यास: खुद जवाब दो

अपना जवाब लिखो या चुनो, फिर जाँचें दबाओ। अटको तो संकेत देखो; जवाब देने के बाद पूरा हल दिखेगा।

अक्सर पूछे जाने वाले प्रश्न

कक्षा 12 IP में डेटा दृश्यीकरण क्या है?

मैटप्लॉटलिब के pyplot मॉड्यूल से डेटा को चार्ट के रूप में दिखाना, ताकि पैटर्न और तुलना आसानी से दिखें।

बार ग्राफ़ और हिस्टोग्राम में क्या अंतर है?

बार ग्राफ़ अलग समूहों की तुलना करता है और बारों के बीच जगह होती है; हिस्टोग्राम एक संख्या-चर का लगातार बिन में फैलाव दिखाता है और बार सटे रहते हैं।

मैटप्लॉटलिब में प्लॉट कैसे सहेजें?

plt.show() से पहले plt.savefig('name.png') लिखें; एक्सटेंशन (png, jpg, pdf) से प्रारूप तय होता है।

यह कहाँ पढ़ाया जाता है

सीबीएसई (भारत)कक्षा 12पांडास द्वारा डेटा प्रबंधन और डेटा दृश्यीकरण

पहले यह पढ़ें

आगे पढ़ें

इससे जुड़े पाठ

सभी सूचना विज्ञान अभ्यास पाठ