ailiteracynepal 🇳🇵
पाठ आकार

अध्याय ३ · खण्ड III · 24 मिनेट

matplotlib: आफ्नो डाटा देख्ने

मानिसले तालिकाभन्दा चित्र छिटो पढ्छन्। matplotlib ले NumPy एरे वा pandas Series लाई एक-दुई लाइनमा चार्टमा बदल्छ। एक पटक डाटा देखेपछि, आधा बग आफै देखिन्छन्।

सङ्ख्याहरूको स्तम्भले केही भन्छ। उही सङ्ख्याहरूको चार्टले धेरै बढी, धेरै छिटो भन्छ — र झन्डै सधैं स्तम्भले नभनेको केही पनि बताउँछ। लामो सपाट लाइन जुन अचानक उच्च हुन्छ। स्क्याटर प्लट जहाँ दुई बादल बिन्दु छेउछाउ बस्छन्, चिच्याउँदै “यी दुई फरक कुरा हुन्, फरक तरिकाले व्यवहार गर्नुहोस्”। matplotlib Python ले डाटाको चित्र बनाउने तरिका हो, र चाँडै यसमा हात लिने बानी पार्नु — आफ्ना सङ्ख्यामा भर पर्नुअघि नै — यो पूरै ट्र्याकका राम्रा बानीमध्ये एक हो।

matplotlib स्थापना

pip install matplotlib

नोटबुकमा:

!pip install matplotlib

संयमित आयात अरूभन्दा एक लाइन लामो हो:

import matplotlib.pyplot as plt

झन्डै हरेक चार्ट त्यो आयातबाट सुरु हुन्छ।

तपाईंको पहिलो प्लट

NEPSE बन्द मूल्यको लाइन चार्ट:

import matplotlib.pyplot as plt

dates = ["Mon", "Tue", "Wed", "Thu", "Fri"]
closes = [2105.4, 2128.9, 2117.3, 2134.7, 2142.1]

plt.plot(dates, closes)
plt.show()

नोटबुकमा चार्ट सेलमुनि देखिन्छ। स्क्रिप्टमा plt.show() ले विन्डो खोल्छ। दुई लाइन प्लटिङ, र तपाईंसँग चित्र छ।

चित्र मात्र पर्याप्त हुँदैन। सधैं लेबल गर्नुहोस्:

plt.plot(dates, closes, marker="o")
plt.title("NEPSE Index — past week")
plt.xlabel("Day")
plt.ylabel("Closing value")
plt.show()

marker="o" ले हरेक डाटा बिन्दुमा डट राख्छ — सानो सङ्ख्याका मानहरू भएको बेला उपयोगी। शीर्षक, अक्ष लेबल, र (आवश्यक हुँदा) एकाइ नभएको चार्ट तीन हप्तापछि अल्मलिने चार्ट हो।

सय पटक कोर्ने तीन चार्ट प्रकार

छोटो परिचय:

लाइन चार्ट — समयसँगै बदलिने जुनसुकैका लागि। शेयर मूल्य, तापक्रम, दैनिक कारोबार गन्ती।

plt.plot(dates, closes)

बार चार्ट — श्रेणीहरूको तुलनाका लागि। प्रति विक्रेता कुल रकम, प्रति जिल्ला विद्यार्थी, बोलिने भाषाहरू।

vendors = ["Khalti", "eSewa", "FonePay"]
totals  = [5450, 1200, 900]

plt.bar(vendors, totals)
plt.ylabel("Total Rs.")
plt.title("Transactions by vendor")
plt.show()

स्क्याटर प्लट — दुई सङ्ख्यात्मक चरहरू सँगै। पढ्ने समय बनाम परीक्षा अङ्क; वर्षा बनाम धान उत्पादन; घरको आकार बनाम भाडा।

study_hours = [1, 2, 3, 4, 5, 6, 7]
scores       = [55, 60, 64, 70, 76, 79, 82]

plt.scatter(study_hours, scores)
plt.xlabel("Study hours")
plt.ylabel("Exam score")
plt.title("Studying vs. score")
plt.show()

यदि प्रश्नका लागि यी तीनमध्ये सही छान्न सक्नुहुन्छ भने, तपाईंले भेट्ने अधिकांश कुरा रेखाङ्कन गर्न सक्नुहुन्छ। चौथो, हिस्टोग्राम, Course 02 मा एकल चरको वितरण हेर्दा आउँछ।

pandas बाटै सिधै प्लट गर्ने

pandas मा हुनुहुन्छ भने, सङ्ख्याहरूलाई सूचीमा बाहिर निकाल्नु आवश्यक हुँदैन। Series र DataFrame दुवैसँग .plot() विधि छ जसले हुडमुनि matplotlib प्रयोग गर्छ:

import pandas as pd
import matplotlib.pyplot as plt

prices = pd.read_csv("data/prices.csv")
prices.plot(x="date", y="close", marker="o")
plt.title("NEPSE Index — past week")
plt.show()

समूहीकृत डाटाको बार चार्टका लागि:

totals = transactions.groupby("vendor")["amount"].sum()
totals.plot(kind="bar")
plt.title("Transactions by vendor")
plt.ylabel("Total Rs.")
plt.show()

kind आर्गुमेन्टले चार्ट प्रकार नियन्त्रण गर्छ — "line" (पूर्वनिर्धारित), "bar", "barh" (तेर्सो बार), "hist", "scatter", र केही अरू।

चार्टलाई फाइलमा बचाउने

तपाईंको काम नोटबुकमा हुँदा, चार्ट आउटपुटमा देखिन्छ र नोटबुकसँगै बचत हुन्छ। अलग्गै छवि चाहिन्छ भने — शिक्षकलाई इमेल गर्न, LinkedIn मा पोस्ट गर्न, वा रिपोर्टमा समावेश गर्न — बचत गर्नुहोस्:

plt.plot(dates, closes, marker="o")
plt.title("NEPSE Index — past week")
plt.savefig("data/nepse_week.png", dpi=200, bbox_inches="tight")

केही उत्पादन-स्तरीय राम्रा कुरा:

  • dpi=200 ले स्पष्ट छवि दिन्छ। पूर्वनिर्धारित (100) स्क्रिनमा ठीक छ तर छापिँदा धमिलो हुन्छ।
  • bbox_inches="tight" ले सेतो किनार काट्छ, जुन चार्ट स्लाइडमा जान लाग्दा महत्त्वपूर्ण हुन्छ।
  • plt.show() कल गर्नुअघि बचत गर्नुहोस्। show() पछि matplotlib ले चित्र खाली पार्छ, र savefig ले खाली फाइल लेख्छ।

जब चार्टले बग पक्रन्छ

वास्तविक उदाहरण। मान्नुहोस्, पोखराको एक वर्षको दैनिक तापक्रम छ र तपाईंले औसत निकाल्नुभयो: 23.4°C। उचित। अधिकतम निकाल्नुभयो: 124°C। अनुचित — पृथ्वीका लागि त्यो ज्वरोको क्षेत्र हो।

तपाईं डाटा प्लट गर्नुहुन्छ:

plt.plot(dates, temperatures)
plt.show()

चार्टले 20–25°C वरिपरि स्थिर लाइन देखाउँछ, र अप्रिल 17 मा 124 को एउटा उच्चाइ। त्यो झन्डै निश्चित रूपमा डाटा-प्रविष्टिको गल्ती वा सेन्सर असफलता हो — र चार्टबिनै 365-पङ्क्तिको तालिकामा खोज्न तपाईंलाई एक घण्टा लाग्थ्यो। चार्टले तीन सेकेन्डमा भेट्यो।

यसैलाई हामी डाटा देख्नु भन्छौँ। सङ्ख्या ठीकै थिए; चार्टले सही प्रश्न सोध्यो।

आफ्नो बुझाइ जाँच्नुहोस्

Quick check

तपाईं एकल त्रैमासका लागि पाँच क्षेत्रको कुल आम्दानी तुलना गर्न चाहनुहुन्छ। कुन matplotlib चार्ट प्रकार सही पूर्वनिर्धारित विकल्प हो?

Quick check

एक साथीले लेख्छिन्: plt.plot(dates, closes) plt.show() plt.savefig('chart.png') उनले 'chart.png' खोल्छिन् र खाली पाउँछिन्। के भयो?

अब के आउँछ

अब तपाईंले डाटा आकारमा राख्न, फङ्क्सन र लूपबाट सार्न, डिस्कमा पढ्न-लेख्न, NumPy ले गणना गर्न, pandas ले व्यवस्थित गर्न, र matplotlib ले देख्न जान्नुहुन्छ। त्यो, धेरै हदसम्म, उपकरण-पेटी हो। अध्याय 4 ले एक छिनका लागि भाषा छाडेर तीनवटा बानीहरू हेर्छ जसले टिङ्करलाई निर्माता बनाउँछ: परियोजना छुट्ट्याउने, संस्करण नियन्त्रणले काम बचाउने, र त्रासले होइन ध्यानले त्रुटि पढ्ने।