Pandas & NumPy Academy · पाठ

लाइन और स्कैटर प्लॉट

ax.plot() से निरंतर डेटा और ax.scatter() से अलग-अलग बिंदु दिखाएँ तथा रंग, मार्कर और लाइन शैली नियंत्रित करें।

पाठ 2, कुल 4 में से13 चरण

लाइन और स्कैटर प्लॉट, CoddyKit पर Pandas & NumPy Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Pandas & NumPy Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Pandas & NumPy Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Line और Scatter: मुख्य Plot प्रकार

Line plots क्रमिक data points को एक रेखा से जोड़ते हैं और समय के साथ trends या सतत functions को दिखाने के लिए आदर्श हैं। Scatter plots अलग-अलग points बनाते हैं, उन्हें रेखाओं से नहीं जोड़ते, इसलिए दो संख्यात्मक variables के बीच संबंधों का पता लगाने के लिए बहुत उपयोगी हैं। दोनों Matplotlib के Axes ऑब्जेक्ट पर बनाए जाते हैं: रेखाओं के लिए ax.plot() और scatter points के लिए ax.scatter()।

Line Charts के लिए ax.plot()

ax.plot(x, y) data points को उनके क्रम में जोड़ने वाली रेखा बनाता है। x-values को पहला argument और y-values को दूसरा argument दें। दोनों Python lists, NumPy arrays या Pandas Series हो सकते हैं। केवल एक argument देने पर Matplotlib index (0, 1, 2, ...) को x-axis के रूप में अपने-आप उपयोग करता है। यह method Line2D Artist ऑब्जेक्ट की एक सूची लौटाता है।

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y)  # basic line plot
ax.set_title('Sine Wave')
ax.set_xlabel('x')
ax.set_ylabel('sin(x)')
# plt.show()
plt.close()

Line की शैली और रंग नियंत्रित करना

ax.plot() के सबसे सामान्य keyword arguments: color (नाम, hex या RGB tuple), linewidth (या lw), linestyle (या ls): '-' ठोस, '--' डैश, ':' बिंदुदार, '-.' डैश-बिंदु, marker (हर data point पर आकृति) और markersize। linestyle और marker को मिलाकर रेखा और अलग-अलग data points दोनों एक साथ दिखाएँ।

fig, ax = plt.subplots(figsize=(7, 4))

# Solid blue line with circle markers
ax.plot(x, np.sin(x), color='steelblue', lw=2, ls='-',
        marker='o', markersize=4, label='sin(x)')

# Dashed red line
ax.plot(x, np.cos(x), color='crimson', lw=1.5, ls='--', label='cos(x)')

ax.legend()
plt.close()

कई Lines का Plot बनाना

एक ही Axes पर कई lines को एक-दूसरे के ऊपर दिखाने के लिए ax.plot() को कई बार कॉल करें। Matplotlib अपने-आप default रंग-पैलेट के रंगों को क्रम से चुनता है। हर line के लिए हमेशा label keyword दें, ताकि ax.legend() उन्हें अपने-आप label कर सके। सभी lines शामिल हों, यह सुनिश्चित करने के लिए legend को सभी plot calls के बाद कॉल करें।

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)
dates = pd.date_range('2024-01', periods=12, freq='ME')
fig, ax = plt.subplots(figsize=(8, 4))

for product in ['A', 'B', 'C']:
    sales = np.random.randint(50, 200, 12)
    ax.plot(dates, sales, marker='o', label=f'Product {product}')

ax.set_title('Monthly Sales by Product')
ax.legend()
plt.close()

Pandas DataFrames का सीधे Plot बनाना

Pandas DataFrames में एक .plot() method होता है, जो सीधे Matplotlib charts बनाता है। किसी मौजूदा Axes ऑब्जेक्ट पर draw करने के लिए ax=ax पास करें। df.plot(ax=ax) DataFrame index को x-axis के रूप में उपयोग करते हुए सभी columns को अलग-अलग lines के रूप में plot करता है। इसके बाद भी आप ax ऑब्जेक्ट पर Matplotlib के सभी customisations लागू कर सकते हैं।

df = pd.DataFrame(
    np.random.randn(12, 3),
    index=pd.date_range('2024', periods=12, freq='ME'),
    columns=['North', 'South', 'West']
).cumsum()

fig, ax = plt.subplots(figsize=(8, 4))
df.plot(ax=ax, linewidth=1.5)
ax.set_title('Cumulative Revenue by Region')
ax.set_ylabel('Revenue (cumulative)')
plt.close()

Scatter Plots के लिए ax.scatter()

ax.scatter(x, y) अलग-अलग points बनाता है और उन्हें जोड़ने वाली lines नहीं बनाता। ax.plot() के विपरीत, scatter यह मानकर नहीं चलता कि data क्रमबद्ध है। मुख्य parameters: c (रंग, हर point के लिए अलग रंग देने वाला array भी हो सकता है), s (point का आकार, यह भी array हो सकता है), cmap (जब c संख्यात्मक हो, तब उपयोग होने वाला colourmap) और alpha (0-1 पारदर्शिता, overlapping points को संभालने के लिए)।

np.random.seed(42)
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)

fig, ax = plt.subplots(figsize=(6, 5))
ax.scatter(x, y, color='steelblue', alpha=0.6, s=40)
ax.set_xlabel('Feature X')
ax.set_ylabel('Target Y')
ax.set_title('Feature vs Target')
plt.close()

श्रेणी के आधार पर Scatter Points को रंगना

Scatter points को किसी तीसरे variable के आधार पर रंगने के लिए c parameter में एक numeric array और cmap colourmap पास करें। पैमाना दिखाने के लिए plt.colorbar(scatter_obj) से colourbar जोड़ें। जब s (size) parameter को भी किसी चौथे variable के आधार पर बदला जाता है, तो इस तकनीक को bubble chart का एक variant कहा जाता है।

categories = np.random.choice([0, 1, 2], size=100)

fig, ax = plt.subplots(figsize=(6, 5))
scatter = ax.scatter(x, y, c=categories, cmap='Set1',
                     alpha=0.7, s=60, edgecolors='none')
fig.colorbar(scatter, ax=ax, label='Category')
ax.set_title('Scatter Coloured by Category')
plt.close()

Trend Line जोड़ना

फिट की गई trend line वाला scatter plot अलग-अलग data points और समग्र pattern दोनों दिखाता है। Linear fit निकालने के लिए np.polyfit(x, y, 1) का उपयोग करें, np.poly1d(coeffs)(x_range) से उसका मान निकालें और scatter के ऊपर ax.plot() से परिणाम overlay करें। Data points से अलग दिखाने के लिए trend line पतली और अलग शैली की होनी चाहिए।

fig, ax = plt.subplots(figsize=(6, 5))
ax.scatter(x, y, alpha=0.4, s=30, color='steelblue', label='Data')

# Fit and plot linear trend line
coeffs = np.polyfit(x, y, 1)
x_line = np.linspace(x.min(), x.max(), 100)
y_line = np.poly1d(coeffs)(x_line)
ax.plot(x_line, y_line, color='red', lw=2, label='Linear fit')

ax.legend()
ax.set_title('Scatter with Trend Line')
plt.close()

fill_between से Confidence Bands को छायांकित करना

ax.fill_between(x, y_lower, y_upper) दो curves के बीच के क्षेत्र को भरता है। इसका उपयोग आम तौर पर mean line के आसपास confidence intervals, standard deviation bands या min/max envelopes दिखाने के लिए किया जाता है। छायांकन को अर्ध-पारदर्शी बनाने के लिए alpha पास करें, ताकि नीचे का data दिखाई देता रहे।

x_range = np.linspace(0, 2 * np.pi, 100)
mean = np.sin(x_range)
upper = mean + 0.2
lower = mean - 0.2

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x_range, mean, color='steelblue', lw=2, label='Mean')
ax.fill_between(x_range, lower, upper,
                color='steelblue', alpha=0.2, label='±0.2 band')
ax.legend()
ax.set_title('Line with Confidence Band')
plt.close()

Axis की सीमाएँ और Grid Lines

ax.set_xlim(min, max) और ax.set_ylim(min, max) से दिखाई देने वाली सीमा नियंत्रित करें। ax.grid(True) से grid lines सक्षम करें। Keyword arguments से grid को customise करें: linestyle, linewidth, alpha। alpha=0.3 वाली हल्की grid, chart को अव्यवस्थित किए बिना सटीक values पढ़ने में मदद करती है। Grid को data points के पीछे draw करने के लिए ax.set_axisbelow(True) कॉल करें।

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, np.sin(x), 'b-', lw=2)

ax.set_xlim(0, 2 * np.pi)
ax.set_ylim(-1.2, 1.2)
ax.grid(True, linestyle='--', alpha=0.5)
ax.set_axisbelow(True)  # grid behind data
ax.set_title('Sine with Grid')
plt.close()

Alpha और Overplotting

जब scatter plot के एक ही क्षेत्र में बहुत-से data points एक-दूसरे पर आ जाते हैं, तो अलग-अलग points दिखाई नहीं देते — इसे overplotting कहा जाता है। इसका सबसे सरल समाधान alpha से opacity कम करना है (0.0 = पूरी तरह पारदर्शी, 1.0 = पूरी तरह अपारदर्शी)। alpha=0.3 या इससे कम रखें, ताकि घने क्षेत्र अधिक गहरे दिखाई दें (क्योंकि कई अर्ध-पारदर्शी points एक-दूसरे पर जमा होते हैं), जबकि विरल क्षेत्र हल्के रहें। बहुत बड़े datasets (लाखों points) के लिए hexbin या kernel density estimates का उपयोग करने पर विचार करें।

np.random.seed(1)
x_dense = np.random.randn(1000)
y_dense = np.random.randn(1000)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))

# Without alpha: overplotting hides density
ax1.scatter(x_dense, y_dense, s=10)
ax1.set_title('No alpha (overplotted)')

# With alpha: density visible
ax2.scatter(x_dense, y_dense, s=10, alpha=0.2)
ax2.set_title('alpha=0.2 (density visible)')

plt.tight_layout()
plt.close()

त्वरित जाँच

इस पाठ में Matplotlib के line और scatter plots की अपनी समझ जाँचें।

पाठ का पुनरावलोकन

इस पाठ में आपने सीखा: ax.plot() रंग, line style और markers पर पूरा नियंत्रण देते हुए line charts बनाता है; ax.scatter() c और s के माध्यम से हर point के रंग और आकार के साथ scatter plots बनाता है; ax.fill_between() confidence bands जोड़ता है; और ax.grid() पढ़ने में आसानी के लिए grid lines जोड़ता है। आगे हम categorical और distributional data को दिखाने के लिए bar charts और histograms बनाएँगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

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

क्या “लाइन और स्कैटर प्लॉट” पाठ निःशुल्क है?

हाँ—“लाइन और स्कैटर प्लॉट” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Pandas & NumPy Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Pandas & NumPy Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“लाइन और स्कैटर प्लॉट” में मैं क्या सीखूँगा?

ax.plot() से निरंतर डेटा और ax.scatter() से अलग-अलग बिंदु दिखाएँ तथा रंग, मार्कर और लाइन शैली नियंत्रित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Pandas & NumPy Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Pandas & NumPy Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Pandas & NumPy Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“लाइन और स्कैटर प्लॉट” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Pandas & NumPy Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Pandas & NumPy Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Figure और Axes की संरचना
  2. लाइन और स्कैटर प्लॉट
  3. बार चार्ट और हिस्टोग्राम
  4. लेबल, शीर्षक और Figure सहेजना
← Pandas & NumPy Academy पर वापस जाएँ