Wie man in Excel mit Python Diagramme erstellt

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?

  1. Keine Excel-Funktion erforderlich: Bauen Sie Diagramme vollständig in Python, auf jedem Betriebssystem.
  2. API für jede Methode je Typ:Verwendung: add_bar(), add_line(), add_pie(), add_area(), und mehr eine Methode pro Diagrammtyp.
  3. Benannte Serien:Die einzelnen Serien werden mit: name=, category_data= Schlüsselwortargumente.
  4. 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-foss

Schritt 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 = 47000

Schritt 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:

 Deutsch