Γιατί να δημιουργείτε διαγράμματα προγραμματιστικά;?
Οι αυτοματοποιημένες γραμμές αναφοράς συχνά χρειάζονται διαγράμματα ενσωματωμένα σε βιβλία εργασίας Excel, όπως τριμηνιαίες συνοψίσεις, πίνακες ελέγχου αποτελεσμάτων ML ή λειτουργικά μετρικά. Η εκτέλεση αυτού χωρίς το Microsoft Excel σημαίνει μηδενικό κόστος άδειας και χωρίς αλληλεπίδραση με GUI.
Aspose.Cells FOSS for Python παρέχει ένα καθαρό, Pythonic API διαγραμμάτων: μία μέθοδο ανά τύπο διαγράμματος, μια απλή συμβολοσειρά για τον τίτλο και διαμόρφωση σειράς με βάση ορίσματα-λέξεις-κλειδιά. Ολόκληρο το API καλύπτεται παρακάτω.
Εγκατάσταση
pip install aspose-cells-foss
Εισάγετε τις κλάσεις που χρειάζεστε:
from aspose.cells_foss import Workbook, Cell
Τα διαγράμματα προσπελάζονται μέσω ws.charts; δεν απαιτείται ξεχωριστή εισαγωγή του module διαγραμμάτων.
Το 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" (επίπεδο διαγράμματος) |
Πόροι
- Aspose.Cells FOSS for Python: Installation
- Οδηγός Προγραμματιστή: Δημιουργία Διαγραμμάτων
- Αναφορά API: ChartCollection, Chart, NSeries
- Βάση Γνώσεων: Πώς να Δημιουργήσετε Διαγράμματα στο Python
- Επισκόπηση προϊόντος: Περίληψη χαρακτηριστικών και δυνατοτήτων
- Ιστολόγιο: Παρουσίαση Aspose.Cells FOSS: Επισκόπηση βιβλιοθήκης και γρήγορη εκκίνηση
- Αποθετήριο GitHub