Wie man in Excel mit Python Diagramme erstellt
Diagramme verwandeln Rohdaten in visuelle Einblicke. Aspose.Cells FOSS for Python Sie können Programmierungskalender für Spalten, Zeilen, Balken und Kuchenkarten erstellen. Damit haben Sie die volle Kontrolle über Datenreihen, Kategorienlabels, Diagrammtiteln und Positionen ohne Microsoft Excel-Behandlung.
Warum mit Aspose.Cells FOSS Charts erstellen?
- Keine Excel-Funktion erforderlich: Bauen Sie Diagramme vollständig in Python, auf jedem Betriebssystem.
- API für jede Methode je Typ:Verwendung:
add_bar(),add_line(),add_pie(),add_area(), und mehr eine Methode pro Diagrammtyp. - Benannte Serien:Die einzelnen Serien werden mit:
name=,category_data=Schlüsselwortargumente. - Präzise Platzierung: Kontrolldiagramm ist durch Zellkoordinaten begrenzt (Oberzeile, Links- und Unterzeilen, Rechts-und Rückseilen).
Schritt für Schritte
Schritt 1: Installieren Sie Aspose.Cells FOSS für Python
pip install aspose-cells-fossSchritt 2: Erstellen Sie ein Arbeitsbuch und füllen Sie die Daten aus
Erstellen Sie eine neue Arbeitsmappe und schreiben Sie numerische Daten plus Kategorienetiketten in Zellen:
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 = 47000Schritt 3: Fügen Sie eine Spaltenkarte hinzu
Verwendung ws.charts.add_bar(top_row, left_col, bottom_row, right_col) Die Methode gibt ein Diagrammobjekt direkt zurück:
##Insert a column chart occupying rows 7-22, columns 0-7
chart = ws.charts.add_bar(6, 0, 22, 7)Zeilen- und Spaltenindizes sind auf Null basierend.
Schritt 4: Datenreihen konfigurieren
Fügen Sie jede Datenreihe zusammen, indem Sie die folgenden Werte verwenden: chart.n_series.add() mit Schlüsselwortargumenten:
##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")Die category_data Das Argument gibt den Zellbereich für die X-Achse-Labels an. name Argument setzt das Label der Serie-Legende.
Schritt 5: Festlegen der Titel und Kategorie Daten des Diagramms
Setzen Sie den Diagramm-Titel als einfache Zeichenfolge:
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"Schritt 6: Speichern des Arbeitsbuchs
workbook.save("sales_chart.xlsx")
print("Workbook with chart saved.")Beispiel für vollständige Spaltendiagramme:
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")Schritt 7: Erstellen Sie eine Linienkarte
Das gleiche Muster funktioniert für 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")Häufige Probleme und Lösungen
1. Chart appears blank or empty
Ursache: Der Datenbereich wurde auf: n_series.add() enthält keine Werte oder die Zellbereichs-Zeichenfolge ist falsch. Behebung:Überprüfen Sie, ob der Zellbereich Ihren Daten entspricht. ws.cells["B2"].value ist nicht None.
2. Category labels not showing on x-axis
Ursache: chart.category_data wurde nicht gesetzt oder der Bereich zeigt auf leere Zellen. Behebung:Set: Einheitliche Anordnung der chart.category_data = "A2:A5" wo Spalte A Ihre Etikettenschriften enthält.
3. Chart position overlaps data
Ursache:Die Zeile ist in: add_bar() Überschneidung mit dem Datenbereich. Behebung:Die Tabelle wird unter die Daten gelegt: ws.charts.add_bar(data_last_row + 2, 0, data_last_row + 18, 7).
4. AttributeError: 'ChartCollection' object has no attribute 'add'
Ursache:Die FOSS-Bibliothek verwendet eine API für Methoden je Typ, nicht die add(ChartType.COLUMN, ...). Behebung:Verwendung: ws.charts.add_bar(...), ws.charts.add_line(...), ws.charts.add_pie(...),oder , ws.charts.add_area(...).
Häufig gestellte Fragen
Welche Diagrammtypen werden unterstützt?
Verwendung add_bar(), add_line(), add_pie(), add_area(),und . add_stock() Diese fünf haben volle XML-Serialierung Unterstützung. Überprüfen Sie die ChartCollection Klasse für die vollständige Liste der verfügbaren add_* Methoden.
Kann ich Diagramme in einer vorhandenen Excel-Datei erstellen?
Ja, laden Sie das Arbeitsbuch mit Workbook("existing.xlsx"), auf das Zielblatt zugreifen und eine Grafik mit dem entsprechenden ws.charts.add_*() Methode.
Wie kann ich den Titel der Tabelle einstellen?
Zuweisen Sie eine einfache Zeichenfolge: chart.title = "My Chart Title".Es gibt keine .text Unter-Eigenschaft: der Titel ist die Zeichenfolge selbst.
Ist diese Methode mit den Pandas vereinbar?
Schreiben Sie Pandas DataFrame Werte in Zellen in einer Schleife, dann fügen Sie ein Diagramm über diesen Datenbereich hinzu.
Verwandte Ressourcen: