डेटा विज़ुअलाइज़ेशन डेटा को चित्रात्मक या ग्राफ़िकल रूप में प्रस्तुत करने की कला और विज्ञान है। संख्याओं की तुलना में चित्र अधिक प्रभावी ढंग से जानकारी संप्रेषित करते हैं। पाइथन में डेटा विज़ुअलाइज़ेशन के लिए मैटप्लोटलिब (Matplotlib) लाइब्रेरी का उपयोग किया जाता है, जो जॉन हंटर द्वारा विकसित की गई थी। इस अध्याय में हम लाइन चार्ट, बार चार्ट, हिस्टोग्राम, स्कैटर प्लॉट तथा पाई चार्ट बनाना सीखेंगे। मैटप्लोटलिब के साथ न्यूमपाई और पांडा का संयोजन डेटा विश्लेषण की दुनिया में बहुत शक्तिशाली माना जाता है।
मैटप्लोटलिब पाइथन की सबसे लोकप्रिय डेटा विज़ुअलाइज़ेशन लाइब्रेरी है। इसका उपयोग करने के लिए इसे आयात करना आवश्यक है। सबसे सामान्य उपयोग pyplot मॉड्यूल के साथ होता है:
import matplotlib.pyplot as plt
import numpy as np
plt.plot() — लाइन चार्ट बनाता है।plt.bar() — बार चार्ट बनाता है।plt.hist() — हिस्टोग्राम बनाता है।plt.scatter() — स्कैटर प्लॉट बनाता है।plt.pie() — पाई चार्ट बनाता है।plt.show() — ग्राफ को प्रदर्शित करता है।plt.title() — ग्राफ का शीर्षक निर्धारित करता है।import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.show()
लाइन चार्ट का उपयोग समय के साथ डेटा में होने वाले परिवर्तन (trend) को दर्शाने के लिए किया जाता है। plt.plot() से लाइन चार्ट बनाया जाता है:
import matplotlib.pyplot as plt
महीने = ['जन', 'फ़र', 'मार्च', 'अप्रै']
बिक्री = [120, 150, 130, 170]
plt.plot(महीने, बिक्री, color='red', marker='o', linestyle='dashed')
plt.title('मासिक बिक्री')
plt.xlabel('महीने')
plt.ylabel('बिक्री')
plt.show()
लाइन चार्ट में color (रंग), marker (बिंदु चिह्न), linestyle (रेखा शैली) जैसे विकल्प दिए जा सकते हैं। कई रेखाओं को एक ही ग्राफ में plt.plot() को दोबारा कॉल करके प्रदर्शित किया जा सकता है।
बार चार्ट का उपयोग श्रेणीबद्ध (categorical) डेटा की तुलना करने के लिए किया जाता है। plt.bar() से ऊर्ध्वाधर बार और plt.barh() से क्षैतिज बार चार्ट बनते हैं:
import matplotlib.pyplot as plt
विषय = ['गणित', 'विज्ञान', 'अंग्रेजी', 'हिंदी']
अंक = [85, 90, 78, 88]
plt.bar(विषय, अंक, color=['blue', 'green', 'orange', 'red'])
plt.title('विषयवार अंक')
plt.xlabel('विषय')
plt.ylabel('अंक')
plt.show()
बार चार्ट में प्रत्येक श्रेणी के लिए एक बार बनता है जिसकी ऊंचाई उसके मान के समानुपाती होती है। यह तुलना के लिए सबसे उपयुक्त चार्ट है।
हिस्टोग्राम का उपयोग डेटा के वितरण (distribution) को दर्शाने के लिए किया जाता है। यह डेटा को अंतरालों (bins) में विभाजित करके प्रत्येक अंतराल की आवृत्ति दिखाता है:
import matplotlib.pyplot as plt
import numpy as np
अंक = [45, 55, 62, 68, 70, 72, 75, 80, 85, 90, 95, 60, 66, 78, 82]
plt.hist(अंक, bins=5, color='purple', edgecolor='black')
plt.title('अंकों का हिस्टोग्राम')
plt.xlabel('अंक अंतराल')
plt.ylabel('आवृत्ति')
plt.show()
बार चार्ट और हिस्टोग्राम में अंतर यह है कि बार चार्ट श्रेणीबद्ध डेटा दिखाता है जबकि हिस्टोग्राम निरंतर (continuous) डेटा का वितरण दिखाता है। हिस्टोग्राम में बार्स आपस में जुड़े होते हैं।
स्कैटर प्लॉट का उपयोग दो निरंतर चरों के बीच संबंध (correlation) दर्शाने के लिए किया जाता है। plt.scatter() से स्कैटर प्लॉट बनता है:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6]
y = [2, 4, 5, 7, 8, 10]
plt.scatter(x, y, color='green', s=50)
plt.title('स्कैटर प्लॉट')
plt.xlabel('X अक्ष')
plt.ylabel('Y अक्ष')
plt.show()
स्कैटर प्लॉट में प्रत्येक बिंदु एक अवलोकन का प्रतिनिधित्व करता है। यदि बिंदु ऊपर की ओर बढ़ते हैं तो धनात्मक सहसंबंध, नीचे की ओर तो ऋणात्मक सहसंबंध और बेतरतीब तो कोई संबंध नहीं होता।
पाई चार्ट का उपयोग भागों के संपूर्ण में योगदान को दर्शाने के लिए किया जाता है। plt.pie() से पाई चार्ट बनता है:
import matplotlib.pyplot as plt
खर्च = [40, 25, 20, 15]
मदें = ['भोजन', 'शिक्षा', 'यात्रा', 'अन्य']
plt.pie(खर्च, labels=मदें, autopct='%1.1f%%', startangle=90)
plt.title('मासिक खर्च का वितरण')
plt.show()
autopct='%1.1f%%' प्रत्येक भाग का प्रतिशत दिखाता है और startangle पाई को घुमाने के लिए उपयोग होता है। पाई चार्ट तभी उपयुक्त है जब भागों की संख्या कम (लगभग 6 से कम) हो।
पांडा की सीरीज़ और डेटाफ्रेम में स्वयं प्लॉटिंग विधियां होती हैं जो मैटप्लोटलिब पर आधारित हैं:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'महीना': ['जन', 'फ़र'], 'बिक्री': [120, 150]})
df.plot(x='महीना', y='बिक्री', kind='bar')
plt.show()
df.plot(kind='bar'), kind='line', kind='hist', kind='pie' आदि के रूप में चार्ट का प्रकार निर्धारित किया जा सकता है। यह तरीका पांडा डेटा के साथ सीधे कार्य करने के लिए बहुत सुविधाजनक है।
ग्राफ को सुंदर और स्पष्ट बनाने के लिए विभिन्न विकल्पों का उपयोग किया जा सकता है:
plt.title('शीर्षक') — ग्राफ का शीर्षक।plt.xlabel() / plt.ylabel() — अक्षों के नाम।plt.grid(True) — ग्रिड लाइनें।plt.legend() — लेजेंड प्रदर्शित करना।plt.xlim() / plt.ylim() — अक्षों की सीमा।plt.savefig('नाम.png') — ग्राफ को फाइल में सहेजना।plt.figure(figsize=(8, 5)) — आकृति का आकार।import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 15, 30]
plt.plot(x, y, label='श्रृंखला 1')
plt.legend()
plt.grid(True)
plt.savefig('चार्ट.png')
plt.show()
किसी भी ग्राफ का मूल उद्देश्य डेटा को सरल और प्रभावी ढंग से प्रस्तुत करना होता है। एक अच्छे चार्ट में स्पष्ट शीर्षक, सही अक्ष लेबल और उपयुक्त पैमाना होना चाहिए। रंगों का चयन सोच-समझकर करना चाहिए, क्योंकि अत्यधिक चटकीले रंग पाठक को भ्रमित कर सकते हैं। डेटा की मात्रा के अनुसार ही चार्ट का प्रकार चुनना चाहिए — उदाहरण के लिए, बहुत अधिक श्रेणियों के लिए पाई चार्ट अनुपयुक्त है, उसके स्थान पर बार चार्ट अधिक उचित है। समय आधारित डेटा में लाइन चार्ट और वितरण दिखाने में हिस्टोग्राम सर्वोत्तम होता है। स्कैटर प्लॉट से दो चरों के बीच संबंध का पता चलता है। plt.figure(figsize=(...)) से आकृति का आकार बढ़ाकर विवरणों को स्पष्ट किया जा सकता है। इसके अलावा plt.xlim() और plt.ylim() से अक्षों की सीमा निर्धारित की जा सकती है, जिससे डेटा के विशेष क्षेत्र पर ध्यान केंद्रित होता है। ग्राफ में grid लाइनें जोड़ने से मानों को पढ़ना सरल हो जाता है। इन सिद्धांतों को ध्यान में रखकर बनाए गए चार्ट न केवल प्रस्तुतीकरण को सुंदर बनाते हैं, बल्कि डेटा के अर्थ को भी स्पष्ट करते हैं। परीक्षा में ऐसे प्रश्न पूछे जाते हैं जिनमें विद्यार्थी को बताना होता है कि किस स्थिति में कौन सा चार्ट उपयुक्त है।
| फलन | चार्ट का प्रकार | उपयोग |
|---|---|---|
plt.plot() |
लाइन चार्ट | समय के साथ प्रवृत्ति |
plt.bar() |
बार चार्ट | श्रेणी तुलना |
plt.hist() |
हिस्टोग्राम | डेटा वितरण |
plt.scatter() |
स्कैटर प्लॉट | दो चरों में संबंध |
plt.pie() |
पाई चार्ट | भागों का योगदान |
| विकल्प | कार्य |
|---|---|
color |
रेखा/बार का रंग |
marker |
बिंदु चिह्न |
linestyle |
रेखा शैली |
label |
लेजेंड लेबल |
autopct |
पाई में प्रतिशत |
bins |
हिस्टोग्राम अंतराल |
startangle |
पाई का प्रारंभ कोण |
| फलन | कार्य |
|---|---|
plt.title() |
शीर्षक |
plt.xlabel() |
X अक्ष नाम |
plt.ylabel() |
Y अक्ष नाम |
plt.legend() |
लेजेंड |
plt.grid() |
ग्रिड |
plt.savefig() |
फाइल में सहेजना |
plt.show() |
ग्राफ दिखाना |
plt.show() भूलना: ग्राफ बनाने के बाद plt.show() न लिखने पर ग्राफ प्रदर्शित नहीं होता।import matplotlib.pyplot as plt भूलना: बिना आयात के plt का उपयोग करने पर NameError आती है।autopct न दिए जाने पर पाई के भागों पर प्रतिशत नहीं दिखता।plt.plot(x, y) में पहले x-मान फिर y-मान दिए जाते हैं; क्रम बदलने पर गलत ग्राफ बनता है।plt.barh और plt.bar में अंतर नहीं समझना: bar ऊर्ध्वाधर है जबकि barh क्षैतिज बार बनाता है।autopct='%1.1f%%' का अर्थ याद रखें — एक दशमलव तक प्रतिशत।plt.savefig() को plt.show() से पहले कॉल करना चाहिए ताकि खाली ग्राफ सहेजा न जाए।df.plot(kind='bar') जैसे पांडा के प्लॉटिंग फलन याद रखें।legend दिखाने के लिए plot() में label देना आवश्यक है।xlabel, ylabel और title देने से नंबर अच्छे मिलते हैं।इस अध्याय में हमने मैटप्लोटलिब लाइब्रेरी की सहायता से विभिन्न प्रकार के चार्ट बनाना सीखा। लाइन चार्ट प्रवृत्ति दिखाता है, बार चार्ट श्रेणियों की तुलना, हिस्टोग्राम डेटा का वितरण, स्कैटर प्लॉट दो चरों के बीच संबंध और पाई चार्ट संपूर्ण में भागों का योगदान। साथ ही हमने ग्राफ को सजाने और पांडा के साथ सीधे प्लॉटिंग की विधियां भी सीखीं। डेटा विज़ुअलाइज़ेशन डेटा विश्लेषण का महत्वपूर्ण अंग है क्योंकि यह जटिल डेटा को सरल और समझने योग्य बनाता है। अगले अध्याय से हम MySQL का अध्ययन प्रारंभ करेंगे, जो डेटाबेस प्रबंधन का आधार है।