Εργασία με Διαγράμματα

Εργασία με Διαγράμματα

Εργασία με Διαγράμματα

Aspose.Words FOSS για .NET μπορεί να εισάγει εγγενή διαγράμματα Word — τα ίδια DrawingML διαγράμματα που δημιουργεί το Word — ως σχήμα στη στρώση σχεδίασης. Το DocumentBuilder.InsertChart δημιουργεί το σχήμα και το επιστρέφει· η ιδιότητα Chart του σχήματος εκθέτει σειρές, άξονες, υπόμνημα και μορφοποίηση. Αυτός ο οδηγός καλύπτει τη δημιουργία διαγράμματος, την επιλογή τύπου διαγράμματος, την εργασία με σειρές και σημεία δεδομένων, άξονες και πλέγματα, και τη μορφοποίηση στοιχείων διαγράμματος.


Δημιουργία Διαγράμματος

Κλήστε το DocumentBuilder.InsertChart(chartType, width, height) για να εισάγετε ένα σχήμα διαγράμματος στην θέση του δρομέα και να λάβετε το περιέχον Shape. Η ιδιότητα Chart του είναι το αντικείμενο Chart που διαμορφώνετε. Ένα πρόσφατα εισαχθέν διάγραμμα έρχεται με σειρές επίδειξης placeholder, οπότε καθαρίστε το Chart.Series πριν προσθέσετε πραγματικά δεδομένα με το ChartSeriesCollection.Add(seriesName, categories, values):

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;

// Delete default generated series.
chart.Series.Clear();

string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

doc.Save("chart.docx");

Αυτό το παράδειγμα δημιουργεί ένα Document, χρησιμοποιεί το DocumentBuilder.InsertChart(ChartType.Line, 432, 252) για να εισάγει ένα σχήμα γραμμικού διαγράμματος, διαβάζει το shape.Chart για να λάβει το αντικείμενο Chart, καλεί το chart.Series.Clear() για να αφαιρέσει τη σειρά placeholder, προσθέτει μια πραγματική σειρά με το chart.Series.Add(seriesName, categories, values), και γράφει το αποτέλεσμα με το Document.Save.


Τύποι Διαγραμμάτων

ChartType καλύπτει τις τυπικές οικογένειες διαγραμμάτων του Word — Line, Bar, Column (συμπεριλαμβανομένων των παραλλαγών Stacked, PercentStacked και 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, και των νεότερων τύπων διαγραμμάτων Word 2016 Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker και Waterfall. Περάστε την επιθυμητή τιμή ως το όρισμα chartType στο InsertChart; δεν υπάρχει τρόπος να αλλάξετε τον τύπο ενός υπάρχοντος διαγράμματος μετά την εισαγωγή εκτός από την αντικατάσταση του σχήματος.


Σειρές και Σημεία Δεδομένων

Chart.Series είναι ένα ChartSeriesCollection από ChartSeries αντικείμενα. Πέρα από την υπερφόρτωση Add(seriesName, categories, values) που χρησιμοποιήθηκε παραπάνω, το ChartSeriesCollection έχει επίσης υπερφορτώσεις για ζεύγη τιμών X/Y, ημερομηνίες και μεγέθη φυσαλίδων, καθώς και Insert, Remove(index) και Clear(). Κάθε ChartSeries εκθέτει DataPoints (ένα ChartDataPointCollection) για μορφοποίηση ανά σημείο — Format, Marker, Explosion και InvertIfNegative — και HasDataLabels / DataLabels για ενεργοποίηση και ρύθμιση ενός ChartDataLabelCollection (ShowValue, ShowCategoryName, ShowPercentage, Position).


Άξονες και Γραμμές Πλέγματος

Chart.AxisX, AxisY και AxisZ είναι αντικείμενα ChartAxis (με Chart.Axes ως ChartAxisCollection για την επανάληψη όλων τους). Κάθε άξονας διαθέτει HasMajorGridlines / HasMinorGridlines, MajorUnit / MinorUnit (με αντίστοιχα *IsAuto flags), Crosses / CrossesAt, CategoryType, και ένα αντικείμενο TickLabels (AxisTickLabels) για τη γραμματοσειρά και τον προσανατολισμό της ετικέτας. ChartAxis.Title (ChartAxisTitle) ορίζει το κείμενο της λεζάντας του άξονα μέσω των ιδιοτήτων Text και Show.


Υπόμνημα, Τίτλος και Πίνακας Δεδομένων

Chart.Title (ChartTitle) ορίζει τη συνολική λεζάντα του διαγράμματος — Text, Show και Font. Chart.Legend (ChartLegend) ελέγχει αν και πού εμφανίζεται το υπόμνημα μέσω του Position (μια τιμή LegendPosition όπως Bottom, Right ή Top) και εκθέτει μεμονωμένα LegendEntries. Chart.DataTable (ChartDataTable) μπορεί να εμφανίσει τις υποκείμενες τιμές των σειρών ως πίνακα κάτω από την περιοχή του γραφήματος, με Show, HasLegendKeys και εναλλαγές περιγράμματος.


Μορφοποίηση Στοιχείων Διαγράμματος

Τα περισσότερα στοιχεία του διαγράμματος — σειρές, σημεία δεδομένων, άξονες, ο τίτλος και το υπόμνημα — εκθέτουν μια ιδιότητα Format τύπου ChartFormat, η οποία με τη σειρά της εκθέτει Fill και Stroke για τα χρώματα του στοιχείου, καθώς και ένα ShapeType (ChartShapeType) για τα σχήματα των σημείων δεδομένων. ChartFormat.SetDefaultFill() επαναφέρει ένα στοιχείο στην προεπιλεγμένη εμφάνιση που καθορίζεται από το θέμα.


Συμβουλές και Καλές Πρακτικές

  • Πάντα καθαρίζετε ή αντικαθιστάτε τη σειρά κράτησης θέσης (chart.Series.Clear()) πριν προσθέσετε πραγματικά δεδομένα — ένα πρόσφατα εισαχθέν διάγραμμα περιλαμβάνει ήδη δείγμα δεδομένων.
  • Χρησιμοποιήστε τις υπερφορτώσεις του ChartSeriesCollection.Add που ταιριάζουν με τη μορφή των δεδομένων σας (κατηγορίες, ζεύγη X/Y, ημερομηνίες ή μεγέθη φουσκών) αντί να εξαναγκάζετε τα πάντα μέσω ζευγών κατηγορία/τιμή.
  • Ορίστε το HasDataLabels = true σε μια σειρά πριν ρυθμίσετε τη συλλογή DataLabels — οι ιδιότητες εμφάνισης της συλλογής δεν έχουν ορατό αποτέλεσμα όταν οι ετικέτες είναι απενεργοποιημένες.
  • Διαβάστε το Chart.ChartSpace ή ελέγξτε το συγκεκριμένο ChartType πριν βασιστείτε στη συμπεριφορά των γραμμών πλέγματος ή των αξόνων που διαφέρει μεταξύ κλασικών διαγραμμάτων και διαγραμμάτων στυλ Word-2016.
  • Προτιμήστε το ChartFormat.SetDefaultFill() αντί για το χειροκίνητο καθάρισμα κάθε ιδιότητας γεμίσματος όταν θέλετε να επαναφέρετε την εμφάνιση ενός στοιχείου.

Κοινά Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Το νέο διάγραμμα εμφανίζει απρόσμενα δεδομένα επίδειξηςInsertChart σπέρνει το διάγραμμα με σειρά placeholderΚαλέστε το chart.Series.Clear() πριν προσθέσετε τις δικές σας σειρές
Οι ετικέτες δεδομένων δεν εμφανίζονταιHasDataLabels δεν ορίστηκε στη σειρά πριν από τη διαμόρφωση του DataLabelsΟρίστε series.HasDataLabels = true, στη συνέχεια ρυθμίστε ShowValue/ShowCategoryName στο series.DataLabels
Οι γραμμές πλέγματος δεν εμφανίζονται στον άξονα τιμώνHasMajorGridlines/HasMinorGridlines προεπιλεγούν σε false για αυτόν τον άξοναΟρίστε chart.AxisY.HasMajorGridlines = true (και HasMinorGridlines αν χρειάζεται)
Το υπόμνημα δεν εμφανίζεταιChart.Legend.Position έχει οριστεί σε LegendPosition.NoneΟρίστε Position σε Bottom, Right, Top, Left ή TopRight

FAQ

Πώς μπορώ να εισάγω ένα γράφημα σε ένα έγγραφο;

Καλέστε DocumentBuilder.InsertChart(chartType, width, height). Επιστρέφει το Shape που το περιέχει· διαβάστε την ιδιότητα Chart για να διαμορφώσετε το γράφημα.

Πώς μπορώ να προσθέσω δεδομένα σε ένα γράφημα;

Καθαρίστε τη σειρά placeholder με το chart.Series.Clear(), στη συνέχεια καλέστε το chart.Series.Add(seriesName, categories, values) (ή μία από τις άλλες υπερφορτωμένες Add για δεδομένα X/Y, ημερομηνίας ή φυσαλίδων).

Ποιοι τύποι γραφήματος είναι διαθέσιμοι;

ChartType περιλαμβάνει τις κλασικές οικογένειες (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, καθώς και τις στοίβακές και 3Δ παραλλαγές τους) και τους τύπους γραφήματος του Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

Πώς μπορώ να αλλάξω τη θέση όπου εμφανίζεται το υπόμνημα;

Ορίστε το Chart.Legend.Position σε μια τιμή LegendPosition, όπως το LegendPosition.Bottom ή το LegendPosition.Right.

Μπορώ να μορφοποιήσω ένα μεμονωμένο σημείο δεδομένων διαφορετικά από τα υπόλοιπα της σειράς του;

Ναι — δείξτε στο ChartSeries.DataPoints (ένα ChartDataPointCollection) και ορίστε το Format, Marker ή Explosion του ChartDataPoint ανεξάρτητα από τη μορφοποίηση σε επίπεδο σειράς.


API Reference Περίληψη

Κλάση/ΜέθοδοςΠεριγραφή
DocumentBuilder.InsertChartΕισάγει ένα σχήμα διαγράμματος στον κέρσορα και το επιστρέφει.
ChartΤο αντικείμενο διαμόρφωσης διαγράμματος, προσβάσιμο μέσω Shape.Chart.
ChartTypeΑπαρίθμηση των διαθέσιμων τύπων διαγραμμάτων (γραμμή, ράβδος, πίτα και τύποι διαγραμμάτων Word-2016).
ChartSeriesCollection / ChartSeriesΟι σειρές δεδομένων του διαγράμματος και οι μέθοδοι για την προσθήκη, εισαγωγή ή αφαίρεσή τους.
ChartDataPointCollection / ChartDataPointΜορφοποίηση ανά σημείο εντός μιας σειράς.
ChartDataLabelCollection / ChartDataLabelΕτικέτες τιμής/κατηγορίας που εμφανίζονται σε σημεία του διαγράμματος.
ChartAxis / ChartAxisCollectionΔιαμόρφωση αξόνων — γραμμές πλέγματος, μονάδες, σημείο διασταύρωσης, ετικέτες κλίκας.
ChartLegend / LegendPositionΟρατότητα και τοποθέτηση του υπομνήματος.
ChartTitleΗ συνολική λεζάντα του διαγράμματος.
ChartDataTableΠροαιρετικός πίνακας τιμών σειράς που εμφανίζεται κάτω από την περιοχή του γραφήματος.
ChartFormatΓέμισμα, περίγραμμα και μορφοποίηση σχήματος που μοιράζονται τα περισσότερα στοιχεία γραφήματος.

Δείτε επίσης

 Ελληνικά