💻
⌨️
🖱️
🖥️
💾
← डैशबोर्ड पर वापस जाएँ
Font Size:

1. परिचय

डेटा विज़ुअलाइज़ेशन (Data Visualization) डेटा को ग्राफ़, चार्ट और आरेखों के रूप में प्रस्तुत करने की कला है। संख्याओं की तुलना में चित्रों से डेटा को समझना अधिक आसान और प्रभावी होता है। पाइथन में डेटा विज़ुअलाइज़ेशन के लिए सबसे लोकप्रिय पुस्तकालय matplotlib है। इसके pyplot मॉड्यूल से लाइन चार्ट, बार चार्ट, पाई चार्ट और स्कैटर प्लॉट जैसे विभिन्न चार्ट बनाए जाते हैं। इस अध्याय में हम matplotlib की मूल बातें, चार्ट बनाने की विधि, ग्राफ़ को अनुकूलित (Customize) करने के तरीकों और विभिन्न चार्ट प्रकारों का अध्ययन करेंगे। विज़ुअलाइज़ेशन डेटा विश्लेषण का आधार है, क्योंकि इससे पैटर्न, प्रवृत्ति और असामान्यताओं को तुरंत पहचाना जा सकता है।

2. matplotlib का परिचय

matplotlib एक ओपन-सोर्स पायथन पुस्तकालय है जो 2D ग्राफ़ और चार्ट बनाने के लिए उपयोग होता है। इसे पहले स्थापित करना आवश्यक है:

pip install matplotlib

फिर प्रोग्राम में import करते हैं:

import matplotlib.pyplot as plt

इससे हमें plt नाम से pyplot के सभी फ़ंक्शन मिलते हैं। मुख्य फ़ंक्शन हैं: plot(), bar(), pie(), scatter(), xlabel(), ylabel(), title(), legend(), show(), grid()

3. लाइन चार्ट (Line Chart)

लाइन चार्ट डेटा के बिंदुओं को रेखा से जोड़ता है और समय के साथ प्रवृत्ति (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)

4. बार चार्ट (Bar Chart)

बार चार्ट श्रेणीगत डेटा (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()

5. पाई चार्ट (Pie Chart)

पाई चार्ट कुल में प्रत्येक भाग का प्रतिशत दर्शाता है। यह गोल आकार का होता है।

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()

पाई चार्ट का अनुकूलन

plt.pie(sizes, labels=labels, autopct="%1.1f%%", explode=[0.1, 0, 0, 0], startangle=90)

6. स्कैटर प्लॉट (Scatter Plot)

स्कैटर प्लॉट दो चरों के बीच संबंध (सहसंबंध) दर्शाता है। बिंदु (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()

7. एकाधिक ग्राफ़ एक साथ (Multiple Plots)

एक ही 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()

subplot() से एकाधिक चार्ट

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()

8. ग्राफ़ अनुकूलन (Customization)

किसी ग्राफ़ को स्पष्ट और आकर्षक बनाने के लिए अनुकूलन अत्यंत आवश्यक है। एक अच्छे ग्राफ़ में शीर्षक, अक्षों के नाम, ग्रिड, पहचानकर्ता (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()

9. ग्राफ़ में डेटा स्रोत

हम लिस्ट या डेटाफ़्रेम (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()

10. चार्ट चयन के सिद्धांत

graph TD A["डेटा विज़ुअलाइज़ेशन"] --> B["matplotlib.pyplot"] B --> C["लाइन चार्ट"] B --> D["बार चार्ट"] B --> E["पाई चार्ट"] B --> F["स्कैटर प्लॉट"] C --> C1["plot(), प्रवृत्ति दर्शाना"] D --> D1["bar(), श्रेणी तुलना"] E --> E1["pie(), प्रतिशत"] F --> F1["scatter(), संबंध"] B --> G["अनुकूलन: title, xlabel, legend, grid"]

त्वरित पुनरावृत्ति तालिकाएँ

फ़ंक्शन कार्य
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 चित्र आकार

माइंड मैप

flowchart TD A["matplotlib.pyplot"] --> B["लाइन चार्ट: plot()"] A --> C["बार चार्ट: bar()"] A --> D["पाई चार्ट: pie()"] A --> E["स्कैटर: scatter()"] A --> F["अनुकूलन"] F --> G["title, xlabel, ylabel"] F --> H["legend, grid"] F --> I["marker, color, linestyle"] A --> J["subplot: एकाधिक ग्राफ़"] A --> K["savefig: फ़ाइल में सहेजना"]

महत्वपूर्ण आरेख (SVG)

चार्ट प्रकारों का चयन लाइन चार्ट - प्रवृत्ति बार चार्ट - तुलना 40% 30% पाई चार्ट - प्रतिशत स्कैटर - संबंध स्वर्ण नियम (Golden Rule) प्रवृत्ति → लाइन, तुलना → बार, प्रतिशत → पाई, संबंध → स्कैटर।
पाइथन कोड का ग्राफ़ में अनुवाद import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [10, 15, 13, 18, 20] plt.plot(x, y) → plt.show() निष्पादित लाइन चार्ट स्वर्ण नियम (Golden Rule) show() से पहले सभी अनुकूलन (title, xlabel) लिखें।

सामान्य गलतियाँ

  1. matplotlib को import न करना: plt का उपयोग करने से पहले import matplotlib.pyplot as plt अनिवार्य है।
  2. show() भूल जाना: plt.show() के बिना ग्राफ़ प्रदर्शित नहीं होता।
  3. x और y की लंबाई का बेमेल: plot(x, y) में दोनों सूचियों की लंबाई समान होनी चाहिए, अन्यथा त्रुटि आती है।
  4. pie() में autopct न देना: प्रतिशत दिखाने के लिए autopct="%1.1f%%" आवश्यक है।
  5. label लिखकर legend() न देना: label का उपयोग तभी दिखता है जब legend() बुलाया जाए।
  6. bar() के बजाय plot() का गलत उपयोग: श्रेणीगत तुलना के लिए bar(), प्रवृत्ति के लिए plot()।
  7. savefig() के बाद show() का क्रम: savefig() show() से पहले लिखें, अन्यथा खाली फ़ाइल बन सकती है।

परीक्षा युक्तियाँ

  1. चार्ट प्रकार और उनके उपयोग (लाइन-प्रवृत्ति, बार-तुलना, पाई-प्रतिशत, स्कैटर-संबंध) का मिलान याद रखें।
  2. पाई चार्ट में autopct="%1.1f%%" का सिंटैक्स और अर्थ लिखना जानें।
  3. plot() के अनुकूलन पैरामीटर (color, linestyle, marker, linewidth) के उदाहरण याद रखें।
  4. ग्राफ़ में title, xlabel, ylabel, grid, legend का क्रम सही लिखें।
  5. बार चार्ट में दो श्रेणियों की तुलना के लिए x + width का तर्क समझें।
  6. plt.show() और plt.savefig() के उपयोग के प्रश्नों में क्रम का ध्यान रखें।
  7. चार्ट चयन के प्रश्नों में डेटा का स्वरूप (समय/श्रेणी/अनुपात/संबंध) पहचानना सीखें।

निष्कर्ष

डेटा विज़ुअलाइज़ेशन डेटा विश्लेषण का एक महत्वपूर्ण भाग है। matplotlib पुस्तकालय के माध्यम से हम डेटा को सरल और आकर्षक ग्राफ़ों में बदल सकते हैं। लाइन चार्ट प्रवृत्ति, बार चार्ट तुलना, पाई चार्ट अनुपात और स्कैटर प्लॉट संबंध दर्शाते हैं। ग्राफ़ को स्पष्ट बनाने के लिए शीर्षक, अक्षों के नाम और ग्रिड का उपयोग करना आवश्यक है। अगले अध्यायों में हम MySQL डेटाबेस का अध्ययन करेंगे, जहाँ संग्रहीत डेटा को इसी विज़ुअलाइज़ेशन तकनीक से चार्ट में बदला जा सकता है। छात्रों को विभिन्न प्रकार के चार्ट स्वयं बनाकर और उन्हें अनुकूलित करके अभ्यास करना चाहिए।