Python के साथ Excel में चार्ट कैसे बनाएं

Python के साथ Excel में चार्ट कैसे बनाएं

चार्ट कच्चे स्प्रेडशीट डेटा को दृश्य अंतर्दृष्टियों में बदलते हैं। Aspose.Cells FOSS for Python आपको प्रोग्रामेटिक रूप से कॉलम, लाइन, बार और पाई चार्ट बनाने की अनुमति देता है, डेटा सीरीज़, श्रेणी लेबल, चार्ट शीर्षक और स्थिति पर पूर्ण नियंत्रण के साथ, बिना Microsoft Excel की आवश्यकता के।

Aspose.Cells FOSS के साथ चार्ट क्यों बनाएं?

  1. Excel की आवश्यकता नहीं: Python में पूरी तरह चार्ट बनाएं, किसी भी OS पर.
  2. Method-per-type API: add_bar(), add_line(), add_pie(), add_area(), और अधिक का उपयोग करें — प्रत्येक चार्ट प्रकार के लिए एक मेथड.
  3. Named series: प्रत्येक सीरीज़ को name=, category_data= कीवर्ड आर्ग्युमेंट्स के साथ कॉन्फ़िगर करें.
  4. Precise placement: सेल कोऑर्डिनेट्स (top_row, left_col, bottom_row, right_col) द्वारा चार्ट की सीमाओं को नियंत्रित करें.

चरण-दर-चरण मार्गदर्शिका

चरण 1: Aspose.Cells FOSS को Python के लिए स्थापित करें

pip install aspose-cells-foss

चरण 2: एक वर्कबुक बनाएं और डेटा भरें

एक नया वर्कबुक बनाएं और संख्यात्मक डेटा के साथ श्रेणी लेबल को कोशिकाओं में लिखें:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]
ws.name = "Sales Data"

##Category labels in column A (rows 2-5, leaving row 1 for a header)
ws.cells["A1"].value = "Quarter"
ws.cells["A2"].value = "Q1"
ws.cells["A3"].value = "Q2"
ws.cells["A4"].value = "Q3"
ws.cells["A5"].value = "Q4"

##Revenue series in column B
ws.cells["B1"].value = "Revenue"
ws.cells["B2"].value = 50000
ws.cells["B3"].value = 62000
ws.cells["B4"].value = 71000
ws.cells["B5"].value = 89000

##Expense series in column C
ws.cells["C1"].value = "Expenses"
ws.cells["C2"].value = 32000
ws.cells["C3"].value = 38000
ws.cells["C4"].value = 41000
ws.cells["C5"].value = 47000

चरण 3: कॉलम चार्ट जोड़ें

ws.charts.add_bar(top_row, left_col, bottom_row, right_col) का उपयोग करके एक कॉलम चार्ट सम्मिलित करें। यह मेथड सीधे एक चार्ट ऑब्जेक्ट लौटाता है:

##Insert a column chart occupying rows 7-22, columns 0-7
chart = ws.charts.add_bar(6, 0, 22, 7)

पंक्ति और स्तंभ सूचकांक शून्य-आधारित होते हैं।


चरण 4: डेटा श्रृंखला कॉन्फ़िगर करें

chart.n_series.add() का उपयोग करके प्रत्येक डेटा श्रृंखला को कीवर्ड तर्कों के साथ जोड़ें:

##Add Revenue series
chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue")

##Add Expenses series
chart.n_series.add("C2:C5", category_data="A2:A5", name="Expenses")

category_data तर्क x‑अक्ष लेबल के लिए सेल रेंज निर्दिष्ट करता है। name तर्क श्रृंखला लेजेंड लेबल सेट करता है।


चरण 5: चार्ट शीर्षक और श्रेणी डेटा सेट करें

चार्ट शीर्षक को साधारण स्ट्रिंग के रूप में सेट करें:

chart.title = "Quarterly Sales vs Expenses"
chart.category_data = "A2:A5"   # x-axis labels at chart level
chart.show_legend = True
chart.legend_position = "bottom"

चरण 6: वर्कबुक सहेजें

workbook.save("sales_chart.xlsx")
print("Workbook with chart saved.")

पूर्ण कॉलम चार्ट उदाहरण:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Data
labels = ["Q1", "Q2", "Q3", "Q4"]
revenue = [50000, 62000, 71000, 89000]
expenses = [32000, 38000, 41000, 47000]

ws.cells["A1"].value = "Quarter"
ws.cells["B1"].value = "Revenue"
ws.cells["C1"].value = "Expenses"

for i, (label, rev, exp) in enumerate(zip(labels, revenue, expenses), start=2):
    ws.cells[f"A{i}"].value = label
    ws.cells[f"B{i}"].value = rev
    ws.cells[f"C{i}"].value = exp

chart = ws.charts.add_bar(6, 0, 22, 7)
chart.title = "Quarterly Sales vs Expenses"
chart.category_data = "A2:A5"
chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue")
chart.n_series.add("C2:C5", category_data="A2:A5", name="Expenses")
chart.show_legend = True
chart.legend_position = "bottom"

workbook.save("quarterly_chart.xlsx")

चरण 7: एक लाइन चार्ट बनाएं

उसी पैटर्न add_line() के लिए काम करता है:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
revenue = [42000, 47500, 53000, 49000, 61000, 68000]

ws.cells["A1"].value = "Month"
ws.cells["B1"].value = "Revenue"

for i, (m, r) in enumerate(zip(months, revenue), start=2):
    ws.cells[f"A{i}"].value = m
    ws.cells[f"B{i}"].value = r

chart = ws.charts.add_line(8, 0, 24, 8)
chart.title = "Monthly Revenue Trend"
chart.category_data = "A2:A7"
chart.n_series.add("B2:B7", category_data="A2:A7", name="Revenue")
chart.show_legend = True

workbook.save("trend_chart.xlsx")

सामान्य समस्याएँ और समाधान

1. चार्ट खाली या रिक्त दिखता है

कारण: डेटा रेंज जो n_series.add() को पास किया गया है उसमें मान नहीं हैं, या सेल रेंज स्ट्रिंग गलत है।
समाधान: सुनिश्चित करें कि सेल रेंज आपके डेटा से मेल खाती है। जाँचें कि ws.cells["B2"].value, None नहीं है।

2. श्रेणी लेबल x-अक्ष पर नहीं दिख रहे हैं

कारण: chart.category_data सेट नहीं किया गया था, या रेंज खाली कोशिकाओं की ओर इशारा कर रही है।
समाधान: chart.category_data = "A2:A5" सेट करें जहाँ कॉलम A में आपके लेबल स्ट्रिंग्स हों।

3. चार्ट स्थिति डेटा को ओवरलैप करती है

Cause: add_bar() में पंक्ति सीमाएँ डेटा क्षेत्र के साथ ओवरलैप करती हैं।
Fix: चार्ट को डेटा के नीचे रखें: ws.charts.add_bar(data_last_row + 2, 0, data_last_row + 18, 7)

4. AttributeError: 'ChartCollection' object has no attribute 'add'

कारण: FOSS लाइब्रेरी मेथड‑पर‑टाइप API का उपयोग करती है, add(ChartType.COLUMN, ...) नहीं।
समाधान: ws.charts.add_bar(...), ws.charts.add_line(...), ws.charts.add_pie(...), या ws.charts.add_area(...) का उपयोग करें।


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

कौन से चार्ट प्रकार समर्थित हैं?

सबसे सामान्य प्रकारों के लिए add_bar(), add_line(), add_pie(), add_area(), और add_stock() का उपयोग करें। इन पाँच में पूर्ण XML सीरियलाइज़ेशन समर्थन है। उपलब्ध add_* मेथड्स की पूरी सूची के लिए ChartCollection क्लास देखें।

क्या मैं मौजूदा Excel फ़ाइल में चार्ट बना सकता हूँ?

हाँ। Workbook("existing.xlsx") के साथ वर्कबुक लोड करें, लक्ष्य शीट तक पहुँचें, और उपयुक्त ws.charts.add_*() मेथड का उपयोग करके चार्ट जोड़ें।

मैं चार्ट शीर्षक कैसे सेट करूँ?

एक साधारण स्ट्रिंग असाइन करें: chart.title = "My Chart Title"। कोई .text उप‑प्रॉपर्टी नहीं है: शीर्षक स्वयं स्ट्रिंग है।

क्या यह तरीका pandas के साथ संगत है?

हाँ। pandas DataFrame मानों को लूप में कोशिकाओं में लिखें, फिर उस डेटा रेंज पर एक चार्ट जोड़ें।


संबंधित संसाधन:

 हिन्दी