Kā izveidot diagrammas Excel ar Python
Diagrammas pārvērš neapstrādātus izklājlapas datus vizuālos ieskatos. Aspose.Cells FOSS for Python ļauj programmatiski izveidot kolonnu, līniju, joslu un sektoru diagrammas, ar pilnīgu kontroli pār datu sērijām, kategoriju etiķetēm, diagrammas nosaukumu un pozīciju, nepieprasot Microsoft Excel.
Kāpēc izveidot diagrammas ar Aspose.Cells FOSS?
- Nav vajadzīgs Excel: Veidojiet diagrammas pilnīgi Python, jebkurā OS.
- Metode-pēc-tipa API: Izmantojiet
add_bar(),add_line(),add_pie(),add_area()un citus — viena metode katram diagrammas tipam. - Nosauktas sērijas: Konfigurējiet katru sēriju ar
name=,category_data=atslēgvārdu argumentiem. - Precīza novietošana: Kontrolējiet diagrammas robežas, izmantojot šūnu koordinātas (top_row, left_col, bottom_row, right_col).
Rokasgrāmata soli pa solim
1. solis: Instalējiet Aspose.Cells FOSS priekš Python
pip install aspose-cells-foss2. solis: Izveidot darblapu un aizpildīt datus
Izveidojiet jaunu darba grāmatu un ierakstiet skaitliskus datus plus kategoriju etiķetes šūnās:
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 = 470003. solis: Pievienot kolonnas diagrammu
Izmantojiet ws.charts.add_bar(top_row, left_col, bottom_row, right_col), lai ievietotu stabiņu diagrammu. Šī metode tieši atgriež diagrammas objektu:
##Insert a column chart occupying rows 7-22, columns 0-7
chart = ws.charts.add_bar(6, 0, 22, 7)Rindas un kolonnu indeksi ir nulles bāzē.
Solis 4: Konfigurēt datu sērijas
Pievienojiet katru datu sēriju, izmantojot chart.n_series.add() ar atslēgvārdu argumentiem:
##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")Argumenta category_data norāda šūnu diapazonu x‑as ass etiķetēm. Argumenta name iestata sērijas leģendas etiķeti.
Solis 5: Iestatīt diagrammas nosaukumu un kategoriju datus
Iestatiet diagrammas nosaukumu kā vienkāršu virkni:
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. solis: saglabāt darblapu
workbook.save("sales_chart.xlsx")
print("Workbook with chart saved.")Pilna kolonnas diagrammas piemērs:
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. solis: Izveidot līniju diagrammu
Tas pats paraugs darbojas ar 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")Vispārējās problēmas un risinājumi
1. Diagramma izskatās tukša vai tukša
Cause: Datu diapazons, kas nodots n_series.add(), nesatur vērtības vai šūnu diapazona virkne ir nepareiza.
Fix: Pārbaudiet, vai šūnu diapazons atbilst jūsu datiem. Pārbaudiet, vai ws.cells["B2"].value nav None.
2. Kategoriju etiķetes netiek parādītas x-ass
Iemesls: chart.category_data netika iestatīts, vai diapazons norāda uz tukšām šūnām.
Risinājums: Iestatiet chart.category_data = "A2:A5", kur kolonnā A ir jūsu etiķešu virknes.
3. Diagrammas pozīcijas pārklājas ar datiem
Iemesls: Rindas robežas add_bar() pārklājas ar datu apgabalu.
Labojums: Novietojiet diagrammu zem datiem: ws.charts.add_bar(data_last_row + 2, 0, data_last_row + 18, 7).
4. AttributeError: 'ChartCollection' object has no attribute 'add'
Iemesls: FOSS bibliotēka izmanto metodi-pēc-tipa API, nevis add(ChartType.COLUMN, ...).
Labojums: Izmantojiet ws.charts.add_bar(...), ws.charts.add_line(...), ws.charts.add_pie(...) vai ws.charts.add_area(...).
Biežāk uzdotie jautājumi
Kuri diagrammu veidi tiek atbalstīti?
Lietojiet add_bar(), add_line(), add_pie(), add_area() un add_stock() visbiežākajām tipiem. Šīm piecām ir pilna XML serializācijas atbalsts. Pārbaudiet ChartCollection klasi, lai iegūtu pilnu pieejamo add_* metožu sarakstu.
Vai es varu izveidot diagrammas esošā Excel failā?
Jā. Ielādējiet darblapu ar Workbook("existing.xlsx"), piekļūstiet mērķa loksnei, un pievienojiet diagrammu, izmantojot atbilstošo ws.charts.add_*() metodi.
Kā es varu iestatīt diagrammas nosaukumu?
Piešķiriet vienkāršu virkni: chart.title = "My Chart Title". Nav .text apakšīpašības: nosaukums ir pati virkne.
Vai šī pieeja ir saderīga ar pandas?
Jā. Rakstiet pandas DataFrame vērtības šūnās ciklā, pēc tam pievienojiet diagrammu pār šo datu diapazonu.
Saistītie resursi: