Kāpēc izveidot diagrammas programmatiski?
Automatizētām atskaites caurulēm bieži ir vajadzīgas diagrammas, kas iekļautas Excel darblapās, piemēram, ceturkšņa kopsavilkumi, ML rezultātu informācijas paneļi vai operatīvie rādītāji. To izdarīt bez Microsoft Excel nozīmē ne licencēšanas izmaksas, ne GUI mijiedarbību.
Aspose.Cells FOSS for Python nodrošina tīru, Pythonisku diagrammu API: viena metode katram diagrammas tipam, vienkāršu virkni nosaukumam un atslēgvārdu argumentu balstītu sēriju konfigurāciju. Visa API ir aprakstīta zemāk.
Instalēt
pip install aspose-cells-foss
Importējiet vajadzīgās klases:
from aspose.cells_foss import Workbook, Cell
Diagrammas tiek piekļūtas caur ws.charts; nav nepieciešama atsevišķa diagrammu moduļa importēšana.
Diagrammu API pārskats
| Ko jūs vēlaties | Kā to izdarīt |
|---|---|
| Pievienot kolonnu diagrammu | ws.charts.add_bar(top_row, left_col, bottom_row, right_col) |
| Pievienot līniju diagrammu | ws.charts.add_line(top_row, left_col, bottom_row, right_col) |
| Pievienot joslu diagrammu | ws.charts.add_bar(top_row, left_col, bottom_row, right_col) |
| Pievienot sektoru diagrammu | ws.charts.add_pie(top_row, left_col, bottom_row, right_col) |
| Iestatīt nosaukumu | chart.title = "My Chart" (vienkārša virkne; ne .title.text) |
| Iestatīt x-assas kategorijas | chart.category_data = "A2:A6" |
| Pievienot nosauktu sēriju | chart.n_series.add("B2:B6", category_data="A2:A6", name="Revenue") |
| Rādīt leģendu | chart.show_legend = True |
| Iestatīt leģendas pozīciju | chart.legend_position = "bottom" |
Visi rindu un kolonnas indeksi ir nulles bāzē. add_* metodes atgriež Chart objektu tieši (nevis indeksa).
Kolonu diagramma: soli pa solim
Izveidosim kolonu diagrammu, kas parāda ceturkšņa ieņēmumus un izdevumus.
1. solis: Izveidojiet darblapu un ierakstiet datus
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. solis: Pievienojiet diagrammu
Novietojiet diagrammu zem datiem (rinda 7 un tālāk, aptverot kolonnas 0‑8):
chart = ws.charts.add_bar(6, 0, 22, 8)
3. solis: Konfigurējiet virsrakstu un leģendu
chart.title = "Quarterly Revenue vs Expenses"
chart.show_legend = True
chart.legend_position = "bottom"
Solis 4: Pievienot datu sērijas
Katrai sērijai ir nepieciešams vērtību diapazons, kategoriju diapazons un nosaukums:
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")
Solis 5: Saglabāt
wb.save("quarterly_report.xlsx")
print("Chart saved to quarterly_report.xlsx")
Pilns piemērs vienā blokā:
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")
Līniju diagramma: Mēneša tendence
Tas pats paraugs darbojas ar 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")
Sektoru diagramma: Tirgus daļa
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")
Biežākās kļūdas, ko jāizvairās
| Kļūda | Pareizi |
|---|---|
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) (pozicionāls) | chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue") |
from aspose.cells.charts import ChartType | Nav vajadzīgs; lietojiet ws.charts.add_bar() tieši |
chart.n_series.category_data = "A2:A5" | chart.category_data = "A2:A5" (diagrammas līmenis) |
Resursi
- Aspose.Cells FOSS for Python: Installation
- Izstrādātāja rokasgrāmata: Diagrammu izveide
- API atsauce: ChartCollection, Chart, NSeries
- Zināšanu bāze: Kā izveidot diagrammas Python
- Produkta pārskats: Iezīmju un iespēju kopsavilkums
- Emuārs: Iepazīstinām ar Aspose.Cells FOSS: Bibliotēkas pārskats un ātrais sākums
- GitHub krātuve