डेटा विज़ुअलाइज़ेशन (Data Visualization) डेटा को ग्राफ़, चार्ट और आरेखों के रूप में प्रस्तुत करने की कला है। संख्याओं की तुलना में चित्रों से डेटा को समझना अधिक आसान और प्रभावी होता है। पाइथन में डेटा विज़ुअलाइज़ेशन के लिए सबसे लोकप्रिय पुस्तकालय matplotlib है। इसके pyplot मॉड्यूल से लाइन चार्ट, बार चार्ट, पाई चार्ट और स्कैटर प्लॉट जैसे विभिन्न चार्ट बनाए जाते हैं। इस अध्याय में हम matplotlib की मूल बातें, चार्ट बनाने की विधि, ग्राफ़ को अनुकूलित (Customize) करने के तरीकों और विभिन्न चार्ट प्रकारों का अध्ययन करेंगे। विज़ुअलाइज़ेशन डेटा विश्लेषण का आधार है, क्योंकि इससे पैटर्न, प्रवृत्ति और असामान्यताओं को तुरंत पहचाना जा सकता है।
matplotlib एक ओपन-सोर्स पायथन पुस्तकालय है जो 2D ग्राफ़ और चार्ट बनाने के लिए उपयोग होता है। इसे पहले स्थापित करना आवश्यक है:
pip install matplotlib
फिर प्रोग्राम में import करते हैं:
import matplotlib.pyplot as plt
इससे हमें plt नाम से pyplot के सभी फ़ंक्शन मिलते हैं। मुख्य फ़ंक्शन हैं: plot(), bar(), pie(), scatter(), xlabel(), ylabel(), title(), legend(), show(), grid()।
लाइन चार्ट डेटा के बिंदुओं को रेखा से जोड़ता है और समय के साथ प्रवृत्ति (Trend) दर्शाने के लिए उपयुक्त है।
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 18, 20]
plt.plot(x, y)
plt.title("लाइन चार्ट")
plt.xlabel("महीने")
plt.ylabel("बिक्री")
plt.show()
plt.plot(x, y, color="red", linestyle="--", marker="o", linewidth=2)
color - रेखा का रंगlinestyle - रेखा की शैली (solid, dashed, dotted)marker - बिंदुओं का चिह्न (o, *, s, ^)linewidth - रेखा की मोटाईबार चार्ट श्रेणीगत डेटा (Categorical Data) की तुलना करने के लिए उपयोग होता है। प्रत्येक श्रेणी के लिए ऊर्ध्वाधर या क्षैतिज बार बनते हैं।
import matplotlib.pyplot as plt
subjects = ["गणित", "विज्ञान", "हिंदी", "अंग्रेज़ी"]
marks = [85, 90, 78, 88]
plt.bar(subjects, marks, color="green")
plt.title("विषयवार अंक")
plt.xlabel("विषय")
plt.ylabel("अंक")
plt.show()
plt.barh(subjects, marks, color="orange")
import numpy as np
x = np.arange(len(subjects))
width = 0.35
plt.bar(x, marks, width, label="टर्म 1")
plt.bar(x + width, [80, 85, 82, 90], width, label="टर्म 2")
plt.legend()
पाई चार्ट कुल में प्रत्येक भाग का प्रतिशत दर्शाता है। यह गोल आकार का होता है।
import matplotlib.pyplot as plt
labels = ["पाइथन", "Java", "C++", "HTML"]
sizes = [40, 30, 20, 10]
plt.pie(sizes, labels=labels, autopct="%1.1f%%")
plt.title("प्रोग्रामिंग भाषाओं का उपयोग")
plt.show()
labels - प्रत्येक भाग का नामsizes - प्रत्येक भाग का मानautopct - प्रतिशत प्रदर्शित करता है ("%1.1f%%" एक दशमलव स्थान तक)plt.pie(sizes, labels=labels, autopct="%1.1f%%", explode=[0.1, 0, 0, 0], startangle=90)
explode - एक भाग को थोड़ा बाहर खिसकाना (मुख्य भाग को उजागर करना)startangle - चार्ट की प्रारंभिक कोणस्कैटर प्लॉट दो चरों के बीच संबंध (सहसंबंध) दर्शाता है। बिंदु (points) के रूप में डेटा प्रदर्शित होता है।
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 5, 3]
plt.scatter(x, y, color="blue", s=50)
plt.title("स्कैटर प्लॉट")
plt.show()
s - बिंदुओं का आकारएक ही figure में अनेक ग्राफ़ बनाए जा सकते हैं। या एक ही ग्राफ़ में अनेक डेटा श्रृंखलाएँ।
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y1 = [10, 20, 15, 25]
y2 = [5, 15, 10, 20]
plt.plot(x, y1, label="उत्पाद A", marker="o")
plt.plot(x, y2, label="उत्पाद B", marker="s")
plt.legend()
plt.show()
plt.figure(figsize=(10, 4))
plt.subplot(1, 2, 1)
plt.plot(x, y1)
plt.title("ग्राफ़ 1")
plt.subplot(1, 2, 2)
plt.bar(x, y2)
plt.title("ग्राफ़ 2")
plt.tight_layout()
plt.show()
किसी ग्राफ़ को स्पष्ट और आकर्षक बनाने के लिए अनुकूलन अत्यंत आवश्यक है। एक अच्छे ग्राफ़ में शीर्षक, अक्षों के नाम, ग्रिड, पहचानकर्ता (legend) और उपयुक्त रंगों का समावेश होता है। शीर्षक से दर्शक को यह पता चलता है कि ग्राफ़ किस विषय पर आधारित है, जबकि अक्षों के नाम से डेटा की इकाई और माप समझ में आती है। ग्रिड रेखाएँ मानों को पढ़ने में सहायता करती हैं, विशेषकर तब जब डेटा बिंदुओं का मान सटीक रूप से निर्धारित करना हो। जब एक ही ग्राफ़ में अनेक श्रृंखलाएँ हों, तो legend उन्हें अलग-अलग पहचानने में मदद करता है। रंगों का चयन भी महत्वपूर्ण है; उदाहरण के लिए, बार चार्ट में प्रत्येक श्रेणी को अलग रंग देकर तुलना को अधिक स्पष्ट किया जा सकता है। रेखा चार्ट में marker बिंदुओं को दर्शाता है और linestyle रेखा को ठोस, टूटी या बिंदु रूप में प्रदर्शित करता है। यदि डेटा की संख्या अधिक है, तो figure(figsize=...) से ग्राफ़ का आकार बढ़ाकर उसे सुपाठ्य बनाया जा सकता है। इसके अतिरिक्त, xlim और ylim से अक्षों की सीमा को नियंत्रित किया जा सकता है, जिससे ग्राफ़ का फ़ोकस केवल आवश्यक भाग पर रहता है। subplot() के द्वारा एक ही चित्र में अनेक ग्राफ़ को पंक्तियों और स्तंभों में व्यवस्थित किया जा सकता है, जिससे भिन्न-भिन्न डेटा की तुलना एक साथ संभव होती है। सहेजने के लिए savefig() का उपयोग होता है, जो ग्राफ़ को चित्र फ़ाइल (PNG, JPG, PDF) के रूप में संग्रहीत करता है। यह विशेष रूप से रिपोर्ट और प्रस्तुतियाँ बनाने में उपयोगी है। ध्यान रखें कि savefig() को show() से पहले लिखा जाना चाहिए, क्योंकि show() के बाद ग्राफ़ विंडो बंद हो जाती है और कुछ परिस्थितियों में फ़ाइल खाली रह सकती है। matplotlib में रंग, मार्कर और शैलियों की विस्तृत सूची उपलब्ध है, जिन्हें कोड में निर्दिष्ट करके आकर्षक ग्राफ़ बनाए जा सकते हैं। पाई चार्ट में explode से मुख्य भाग को उजागर किया जा सकता है और startangle से प्रारंभिक कोण निर्धारित किया जाता है। shadow=True से ग्राफ़ में छाया प्रभाव जोड़ा जा सकता है। इन सभी विकल्पों का सही चयन ग्राफ़ को केवल सुंदर ही नहीं, बल्कि अधिक जानकारीपूर्ण भी बनाता है। परीक्षा में ग्राफ़ अनुकूलन के प्रश्न मुख्यतः title, xlabel, ylabel, grid, legend और रंग-मार्कर विकल्पों पर आधारित होते हैं, इसलिए इन सभी के सिंटैक्स को स्मरण रखना चाहिए। अभ्यास के लिए विभिन्न प्रकार के डेटा पर सभी चार्ट बनाकर उनमें ये विकल्प लागू करने चाहिए, ताकि प्रत्येक का प्रभाव स्पष्ट रूप से समझ में आए।
- plt.title("...") - शीर्षक
- plt.xlabel("...") / plt.ylabel("...") - अक्षों के नाम
- plt.grid(True) - ग्रिड दिखाना
- plt.legend() - पहचानकर्ता दिखाना
- plt.xlim(a, b) / plt.ylim(a, b) - अक्षों की सीमा
- plt.xticks(rotation=45) - x अक्ष के लेबल घुमाना
- plt.savefig("graph.png") - ग्राफ़ को फ़ाइल में सहेजना
- plt.figure(figsize=(8, 5)) - चित्र का आकार
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [3, 6, 2, 7, 4]
plt.plot(x, y, color="purple", marker="o")
plt.title("अनुकूलित ग्राफ़")
plt.xlabel("X अक्ष")
plt.ylabel("Y अक्ष")
plt.grid(True)
plt.savefig("my_plot.png")
plt.show()
हम लिस्ट या डेटाफ़्रेम (pandas) दोनों से ग्राफ़ बना सकते हैं। कक्षा 11 में लिस्ट पर्याप्त है, किंतु pandas का परिचय भी महत्वपूर्ण है।
import pandas as pd
import matplotlib.pyplot as plt
data = {"विषय": ["गणित", "विज्ञान"], "अंक": [85, 90]}
df = pd.DataFrame(data)
plt.bar(df["विषय"], df["अंक"])
plt.show()
| फ़ंक्शन | कार्य |
|---|---|
| plt.plot(x, y) | लाइन चार्ट |
| plt.bar(x, y) | बार चार्ट |
| plt.barh(x, y) | क्षैतिज बार चार्ट |
| plt.pie(sizes) | पाई चार्ट |
| plt.scatter(x, y) | स्कैटर प्लॉट |
| plt.title() | शीर्षक |
| plt.xlabel() / ylabel() | अक्षों के नाम |
| plt.legend() | पहचानकर्ता |
| plt.grid() | ग्रिड |
| plt.show() | ग्राफ़ प्रदर्शन |
| plt.savefig() | फ़ाइल में सहेजना |
| चार्ट प्रकार | सर्वोत्तम उपयोग | मुख्य फ़ंक्शन |
|---|---|---|
| लाइन | समय के साथ प्रवृत्ति | plot() |
| बार | श्रेणी तुलना | bar() |
| पाई | अनुपात/प्रतिशत | pie() |
| स्कैटर | दो चरों का संबंध | scatter() |
| पैरामीटर | कार्य |
|---|---|
| color | रेखा/बार का रंग |
| linestyle | रेखा शैली |
| marker | बिंदु चिह्न |
| autopct | पाई में प्रतिशत |
| explode | पाई भाग को बाहर निकालना |
| label | पहचानकर्ता |
| figsize | चित्र आकार |
import matplotlib.pyplot as plt अनिवार्य है।डेटा विज़ुअलाइज़ेशन डेटा विश्लेषण का एक महत्वपूर्ण भाग है। matplotlib पुस्तकालय के माध्यम से हम डेटा को सरल और आकर्षक ग्राफ़ों में बदल सकते हैं। लाइन चार्ट प्रवृत्ति, बार चार्ट तुलना, पाई चार्ट अनुपात और स्कैटर प्लॉट संबंध दर्शाते हैं। ग्राफ़ को स्पष्ट बनाने के लिए शीर्षक, अक्षों के नाम और ग्रिड का उपयोग करना आवश्यक है। अगले अध्यायों में हम MySQL डेटाबेस का अध्ययन करेंगे, जहाँ संग्रहीत डेटा को इसी विज़ुअलाइज़ेशन तकनीक से चार्ट में बदला जा सकता है। छात्रों को विभिन्न प्रकार के चार्ट स्वयं बनाकर और उन्हें अनुकूलित करके अभ्यास करना चाहिए।