Πώς να δημιουργήσετε χάρτες στο Excel με Python

Πώς να δημιουργήσετε χάρτες στο Excel με Python

Αυτό το εγχειρίδιο δείχνει πώς να δημιουργήσετε στήλες, γραμμές, τράβες και πίνακες γραφικών στο βιβλίο εργασίας του Excel χρησιμοποιώντας Python και Aspose.Cells FOSS, με πλήρη έλεγχο των σειρών δεδομένων, ετικέτες κατηγορίας, τίτλο χάρτη και θέση - χωρίς να απαιτείται Microsoft Excel.

Γιατί να δημιουργήσετε χάρτες με Aspose.Cells FOSS;?

  1. Δεν απαιτείται Excel:Δημιουργήστε χάρτες εντελώς στο Python, σε οποιοδήποτε OS.
  2. Μεθοδο-για τύπο API:• Χρησιμοποιήστε add_bar(), add_line(), add_pie(), add_area(), και περισσότερα - μία μέθοδος ανά τύπο χάρτη.
  3. Ονομαστική σειρά:• Εισάγετε κάθε σειρά με name=, category_data= Λέξεις κλειδιά.
  4. Ακριβής τοποθέτηση: Ο έλεγχος των ορίων του χάρτη με τις συντονισμένες κυττάρες (top_row, left_col, bottom_roow, right_kol).

Βήμα προς βήμα οδηγός

Βήμα 1: Εγκατάσταση Aspose.Cells FOSS για Python

Εγκαταστήστε το πακέτο Aspose.Cells FOSS από την PyPI χρησιμοποιώντας τη διαταγή pip παρακάτω:

pip install aspose-cells-foss

Βήμα 2: Δημιουργία βιβλίου εργασίας και δημοφιλή δεδομένα

Δημιουργήστε ένα νέο βιβλίο εργασίας και γράψτε αριθμητικά δεδομένα plus κατηγορίες ετικέτες σε κύτταρα:

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

Βήμα 3: Προσθέστε ένα χάρτη στήλης

Χρησιμοποιήστε ws.charts.add_bar(top_row, left_col, bottom_row, right_col) Για να εισαγάγετε ένα διάγραμμα στήλης.Η μέθοδος επιστρέφει άμεσα ένα αντικείμενο διαγράμματος:

##Insert a column chart occupying rows 7-22, columns 0-7
chart = ws.charts.add_bar(6, 0, 22, 7)

Οι δείκτες στήλης και στίχους είναι μηδενικές.


Βήμα 4: Εισαγωγή σειράς δεδομένων

Προσθήκη κάθε σειράς δεδομένων χρησιμοποιώντας chart.n_series.add() Με τα κλειδιά επιχειρήματα:

##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")

Η category_data το επιχείρημα προσδιορίζει την περιοχή κυττάρων για τις ετικέτες x-axis. name Το σενάριο φέρει το ετικέτα της θρύλου.


Βήμα 5: Προσθέστε τον τίτλο του πίνακα και τα δεδομένα κατηγορίας

Ορισμός του τίτλου του πίνακα με την αποδοχή ενός ευθείας γραμμής για chart.title, και να ρυθμίσετε την ορατότητα και τη θέση του θρύλου:

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: Αποθηκεύστε το βιβλίο εργασίας

Κλήση Workbook.save() Με το A .xlsx filename για να γράψετε το βιβλίο εργασίας με την ενσωματωμένη χάρτη του σε δίσκο:

workbook.save("sales_chart.xlsx")
print("Workbook with chart saved.")

Το ακόλουθο πλήρες παράδειγμα συνδυάζει όλα τα βήματα σε ένα ενιαίο εκτεταμένο σενάριο που δημιουργεί έναν εβδομαδιαίο χάρτη πωλήσεων και το αποθηκεύει σε αρχείο XLSX:

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: Δημιουργήστε ένα χάρτη γραμμής

Το ίδιο πρότυπο λειτουργεί για γραμμικά γραφικά που χρησιμοποιούν add_line() - να το καλέσετε αντί για add_bar() και να παρέχει μηνιαία δεδομένα εσόδων:

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")

Κοινά προβλήματα και τακτοποιήσεις

1. Chart appears blank or empty

Αιτία:• Η ποικιλία δεδομένων που μεταφέρθηκε σε n_series.add() δεν περιέχει τιμές, ή η αλυσίδα εύρους κυττάρου είναι εσφαλμένη. ΦΙΛΕΞΗ: Ελέγξτε την περιοχή κυττάρων που ταιριάζει με τα δεδομένα σας. ws.cells["B2"].value Δεν είναι None.

2. Category labels not showing on x-axis

Αιτία: chart.category_data δεν έχει οριστεί, ή το εύρος σημείων σε κενές κύτταρα. ΦΙΛΕΞΗ:ΣΕΤΙΔΑ chart.category_data = "A2:A5" όπου η στήλη Α περιέχει τις γραμμές ετικετών σας.

3. Chart position overlaps data

Αιτία:Η σειρά περιορίζεται σε add_bar() Εξέλιξη της περιοχής δεδομένων. ΦΙΛΕΞΗ: Βάλτε το χάρτη κάτω από τα δεδομένα: ws.charts.add_bar(data_last_row + 2, 0, data_last_row + 18, 7).

4. AttributeError: 'ChartCollection' object has no attribute 'add'

Αιτία: Η βιβλιοθήκη FOSS χρησιμοποιεί μέθοδο-για τύπο API, όχι add(ChartType.COLUMN, ...). ΦΙΛΕΞΗ:• Χρησιμοποιήστε ws.charts.add_bar(...), ws.charts.add_line(...), ws.charts.add_pie(...)ws.charts.add_area(...).


Συχνές ερωτήσεις

Ποια είδη χάρτη υποστηρίζονται;?

Χρησιμοποιήστε add_bar(), add_line(), add_pie(), add_area(),και add_stock() για τους πιο κοινούς τύπους. Αυτά τα πέντε έχουν πλήρη υποστήριξη XML σειριώσεως. ChartCollection Η πλήρης λίστα των διαθέσιμων add_* μεθόδους .

Μπορώ να δημιουργήσω χάρτες σε ένα υπάρχον αρχείο του Excel;?

Ναι. Κατεβάστε το βιβλίο εργασίας με Workbook("existing.xlsx"), να έχετε πρόσβαση στο στόχο φύλλο και να προσθέσετε ένα διάγραμμα χρησιμοποιώντας το κατάλληλο ws.charts.add_*() Μεθοδολογία .

Πώς μπορώ να βάλω τον τίτλο του χάρτη;?

Δώστε μια ευθεία γραμμή: chart.title = "My Chart Title".Υπάρχει όχι .text υπο-υποκτησία: ο τίτλος είναι η ίδια η γραμμή.

Είναι συμβατή αυτή η προσέγγιση με τις πανδές;?

Γράψτε τιμές DataFrame σε κύτταρα σε ένα γύρο, στη συνέχεια προσθέστε έναν πίνακα πάνω από αυτό το εύρος δεδομένων.


Σχετικά με τους πόρους:

Δείτε επίσης

 Ελληνικά