प्रोग्रामेटिक रूप से चार्ट बनाना क्यों?

स्वचालित रिपोर्टिंग पाइपलाइन अक्सर Excel कार्यपुस्तिकाओं में एम्बेडेड चार्ट की आवश्यकता रखती हैं, जैसे त्रैमासिक सारांश, ML परिणाम डैशबोर्ड, या संचालन मीट्रिक। Microsoft Excel के बिना यह करने से लाइसेंस लागत नहीं और GUI इंटरैक्शन नहीं होता।.

Aspose.Cells FOSS for Python एक साफ़, पायथनिक चार्ट API प्रदान करता है: प्रत्येक चार्ट प्रकार के लिए एक मेथड, शीर्षक के लिए एक साधारण स्ट्रिंग, और कीवर्ड-आर्ग्यूमेंट-आधारित सीरीज़ कॉन्फ़िगरेशन। पूरी API नीचे कवर की गई है।.


इंस्टॉल

pip install aspose-cells-foss

जिस क्लास की आपको आवश्यकता है उसे इम्पोर्ट करें:

from aspose.cells_foss import Workbook, Cell

चार्ट्स तक पहुँच इस प्रकार है ws.charts; कोई अलग चार्ट मॉड्यूल इम्पोर्ट करने की आवश्यकता नहीं है।.


चार्ट API का एक नज़र में सारांश

आप क्या चाहते हैंइसे कैसे करें
एक कॉलम चार्ट जोड़ेंws.charts.add_bar(top_row, left_col, bottom_row, right_col)
एक लाइन चार्ट जोड़ेंws.charts.add_line(top_row, left_col, bottom_row, right_col)
एक बार चार्ट जोड़ेंws.charts.add_bar(top_row, left_col, bottom_row, right_col)
एक पाई चार्ट जोड़ेंws.charts.add_pie(top_row, left_col, bottom_row, right_col)
शीर्षक सेट करेंchart.title = "My Chart" (साधारण स्ट्रिंग; नहीं .title.text)
x-अक्ष श्रेणियाँ सेट करेंchart.category_data = "A2:A6"
एक नामित सीरीज़ जोड़ेंchart.n_series.add("B2:B6", category_data="A2:A6", name="Revenue")
लेजेंड दिखाएँchart.show_legend = True
लेजेंड की स्थिति सेट करेंchart.legend_position = "bottom"

सभी पंक्ति और कॉलम सूचकांक हैं शून्य-आधारित. यह add_* मेथड्स रिटर्न करते हैं Chart ऑब्जेक्ट सीधे (इंडेक्स नहीं)।.


कॉलम चार्ट: चरण दर चरण

आइए एक कॉलम चार्ट बनाते हैं जो त्रैमासिक राजस्व और खर्च दिखाता है।.

चरण 1: कार्यपुस्तिका बनाएं और डेटा लिखें

from aspose.cells_foss import Workbook, Cell

wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Q1-Q4 Report"

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

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

for i, (q, r, e) in enumerate(zip(quarters, revenue, expenses), start=2):
    ws.cells[f"A{i}"].value = q
    ws.cells[f"B{i}"].value = r
    ws.cells[f"C{i}"].value = e

चरण 2: चार्ट जोड़ें

डेटा के नीचे चार्ट को स्थित करें (पंक्ति 7 से आगे, कॉलम 0-8 तक विस्तारित):

chart = ws.charts.add_bar(6, 0, 22, 8)

चरण 3: शीर्षक और लेजेंड कॉन्फ़िगर करें

chart.title = "Quarterly Revenue vs Expenses"
chart.show_legend = True
chart.legend_position = "bottom"

चरण 4: डेटा श्रृंखला जोड़ें

प्रत्येक श्रृंखला को एक मान सीमा, श्रेणी सीमा, और एक नाम चाहिए:

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

चरण 5: सहेजें

wb.save("quarterly_report.xlsx")
print("Chart saved to quarterly_report.xlsx")

एक ब्लॉक में पूर्ण उदाहरण:

from aspose.cells_foss import Workbook, Cell

wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Q1-Q4 Report"

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

data = [("Q1", 50000, 32000), ("Q2", 62000, 38000),
        ("Q3", 71000, 41000), ("Q4", 89000, 47000)]
for i, (q, r, e) in enumerate(data, start=2):
    ws.cells[f"A{i}"].value = q
    ws.cells[f"B{i}"].value = r
    ws.cells[f"C{i}"].value = e

chart = ws.charts.add_bar(6, 0, 22, 8)
chart.title = "Quarterly Revenue 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"

wb.save("quarterly_report.xlsx")

लाइन चार्ट: मासिक प्रवृत्ति

एक ही पैटर्न इस हेतु काम करता है add_line():

from aspose.cells_foss import Workbook, Cell

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

months  = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
actuals = [42000, 47500, 53000, 49000, 61000, 68000]
targets = [45000, 45000, 50000, 55000, 60000, 65000]

ws.cells["A1"].value = "Month"
ws.cells["B1"].value = "Actual"
ws.cells["C1"].value = "Target"

for i, (m, a, t) in enumerate(zip(months, actuals, targets), start=2):
    ws.cells[f"A{i}"].value = m
    ws.cells[f"B{i}"].value = a
    ws.cells[f"C{i}"].value = t

chart = ws.charts.add_line(8, 0, 24, 8)
chart.title = "Monthly Revenue: Actual vs Target"
chart.category_data = "A2:A7"
chart.n_series.add("B2:B7", category_data="A2:A7", name="Actual")
chart.n_series.add("C2:C7", category_data="A2:A7", name="Target")
chart.show_legend = True
chart.legend_position = "right"

wb.save("monthly_trend.xlsx")

पाई चार्ट: बाजार हिस्सेदारी

from aspose.cells_foss import Workbook, Cell

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

segments = ["Product A", "Product B", "Product C", "Product D"]
shares   = [40, 25, 20, 15]

ws.cells["A1"].value = "Segment"
ws.cells["B1"].value = "Share %"
for i, (s, v) in enumerate(zip(segments, shares), start=2):
    ws.cells[f"A{i}"].value = s
    ws.cells[f"B{i}"].value = v

chart = ws.charts.add_pie(6, 0, 20, 7)
chart.title = "Market Share by Product"
chart.category_data = "A2:A5"
chart.n_series.add("B2:B5", category_data="A2:A5", name="Share")
chart.show_legend = True
chart.legend_position = "right"

wb.save("market_share.xlsx")

से बचने के लिए सामान्य गलतियाँ

गलतसही
ws.charts.add(ChartType.COLUMN, 5, 0, 15, 5)ws.charts.add_bar(5, 0, 15, 5)
chart.title.text = "Revenue"chart.title = "Revenue"
chart.n_series.add("B2:B5", True) (पोज़िशनल)chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue")
from aspose.cells.charts import ChartTypeज़रूरी नहीं; उपयोग करें ws.charts.add_bar() सीधे
chart.n_series.category_data = "A2:A5"chart.category_data = "A2:A5" (चार्ट स्तर)

संसाधन