Lavorare con i grafici
Lavorare con i grafici
Aspose.Words FOSS per .NET può inserire grafici Word nativi — gli stessi grafici DrawingML che Word crea — come forma nel livello di disegno. DocumentBuilder.InsertChart crea la forma e la restituisce; la proprietà Chart della forma espone serie, assi, legenda e formattazione. Questa guida copre la creazione di un grafico, la scelta del tipo di grafico, il lavoro con serie e punti dati, assi e linee della griglia, e la formattazione degli elementi del grafico.
Creare un grafico
Chiama DocumentBuilder.InsertChart(chartType, width, height) per inserire una forma di grafico al cursore e ottenere indietro il Shape contenente. La sua proprietà Chart è l’oggetto Chart che configuri. Un grafico appena inserito include serie demo segnaposto, quindi cancella Chart.Series prima di aggiungere dati reali con 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");Questo esempio costruisce un Document, utilizza DocumentBuilder.InsertChart(ChartType.Line, 432, 252) per inserire una forma di grafico a linee, legge shape.Chart per ottenere l’oggetto Chart, chiama chart.Series.Clear() per rimuovere la serie segnaposto, aggiunge una serie reale con chart.Series.Add(seriesName, categories, values), e scrive il risultato con Document.Save.
Tipi di grafico
ChartType copre le famiglie standard di grafici Word — Line, Bar, Column (più le loro varianti Stacked, PercentStacked e 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, e i tipi di grafico più recenti di Word 2016 Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker e Waterfall. Fornisci il valore desiderato come argomento chartType a InsertChart; non c’è modo di cambiare il tipo di un grafico esistente dopo l’inserimento se non sostituendo la forma.
Serie e punti dati
Chart.Series è un ChartSeriesCollection di oggetti ChartSeries. Oltre al sovraccarico Add(seriesName, categories, values) usato sopra, ChartSeriesCollection ha anche sovraccarichi per coppie di valori X/Y, date e dimensioni delle bolle, oltre a Insert, Remove(index) e Clear(). Ogni ChartSeries espone DataPoints (un ChartDataPointCollection) per la formattazione per punto — Format, Marker, Explosion e InvertIfNegative — e HasDataLabels / DataLabels per attivare e configurare un ChartDataLabelCollection (ShowValue, ShowCategoryName, ShowPercentage, Position).
Assi e linee della griglia
Chart.AxisX, AxisY e AxisZ sono oggetti ChartAxis (con Chart.Axes come ChartAxisCollection per iterare tutti). Ogni asse ha HasMajorGridlines / HasMinorGridlines, MajorUnit / MinorUnit (con flag *IsAuto corrispondenti), Crosses / CrossesAt, CategoryType e un oggetto TickLabels (AxisTickLabels) per il carattere dell’etichetta e l’orientamento. ChartAxis.Title (ChartAxisTitle) imposta il testo della didascalia dell’asse tramite le sue proprietà Text e Show.
Legenda, titolo e tabella dati
Chart.Title (ChartTitle) imposta la didascalia complessiva del grafico — Text, Show e Font. Chart.Legend (ChartLegend) controlla se e dove appare la legenda tramite Position (un valore LegendPosition come Bottom, Right o Top) ed espone LegendEntries individuali. Chart.DataTable (ChartDataTable) può visualizzare i valori delle serie sottostanti come una tabella sotto l’area del grafico, con Show, HasLegendKeys e interruttori di bordo.
Formattazione degli elementi del grafico
La maggior parte degli elementi del grafico — serie, punti dati, assi, il titolo e la legenda — espone una proprietà Format di tipo ChartFormat, che a sua volta espone Fill e Stroke per i colori di quell’elemento, oltre a un ShapeType (ChartShapeType) per le forme dei marcatori dei punti dati. ChartFormat.SetDefaultFill() ripristina un elemento al suo aspetto predefinito basato sul tema.
Suggerimenti e migliori pratiche
- Cancella sempre o sostituisci la serie segnaposto (
chart.Series.Clear()) prima di aggiungere dati reali — un grafico appena inserito contiene già dati di esempio. - Utilizza le sovraccarichi
ChartSeriesCollection.Addche corrispondono alla forma dei tuoi dati (categorie, coppie X/Y, date o dimensioni delle bolle) invece di forzare tutto attraverso coppie categoria/valore. - Imposta
HasDataLabels = truesu una serie prima di configurare la sua raccoltaDataLabels— le proprietà di visualizzazione della raccolta non hanno effetto visibile finché le etichette sono disattivate. - Leggi
Chart.ChartSpaceo controlla lo specificoChartTypeprima di fare affidamento sul comportamento delle linee della griglia o degli assi che differisce tra i grafici classici e quelli in stile Word-2016. - Preferisci
ChartFormat.SetDefaultFill()rispetto a cancellare manualmente ogni proprietà di riempimento quando vuoi ripristinare l’aspetto di un elemento.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| Il nuovo grafico mostra dati demo inaspettati | InsertChart popola il grafico con serie segnaposto | Chiama chart.Series.Clear() prima di aggiungere le tue serie |
| Le etichette dei dati non compaiono | HasDataLabels non è stato impostato sulla serie prima di configurare DataLabels | Imposta series.HasDataLabels = true, poi configura ShowValue/ShowCategoryName su series.DataLabels |
| Le linee della griglia non vengono visualizzate sull’asse dei valori | HasMajorGridlines/HasMinorGridlines predefiniti a false per quell’asse | Imposta chart.AxisY.HasMajorGridlines = true (e HasMinorGridlines se necessario) |
| La legenda non appare | Chart.Legend.Position è impostato su LegendPosition.None | Imposta Position su Bottom, Right, Top, Left o TopRight |
FAQ
Come inserisco un grafico in un documento?
Chiama DocumentBuilder.InsertChart(chartType, width, height). Restituisce il Shape contenente; leggi la sua proprietà Chart per configurare il grafico.
Come aggiungo dati a un grafico?
Cancella la serie segnaposto con chart.Series.Clear(), quindi chiama chart.Series.Add(seriesName, categories, values) (o una delle altre sovraccarichi Add per dati X/Y, data o a bolle).
Quali tipi di grafico sono disponibili?
ChartType include le famiglie classiche (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, più le loro varianti impilate e 3D) e i tipi di grafico di Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).
Come cambio la posizione della legenda?
Imposta Chart.Legend.Position su un valore LegendPosition, come LegendPosition.Bottom o LegendPosition.Right.
Posso formattare un singolo punto dati in modo diverso dal resto della sua serie?
Sì — indicizza in ChartSeries.DataPoints (un ChartDataPointCollection) e imposta il Format, Marker o Explosion di quel ChartDataPoint in modo indipendente dalla formattazione a livello di serie.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
DocumentBuilder.InsertChart | Inserisce una forma di grafico al cursore e la restituisce. |
Chart | L’oggetto di configurazione del grafico, raggiunto tramite Shape.Chart. |
ChartType | Enum dei tipi di grafico disponibili (line, bar, pie e tipi di grafico Word-2016). |
ChartSeriesCollection / ChartSeries | Le serie di dati del grafico e i metodi per aggiungerle, inserirle o rimuoverle. |
ChartDataPointCollection / ChartDataPoint | Formattazione per punto all’interno di una serie. |
ChartDataLabelCollection / ChartDataLabel | Etichette di valore/categoria visualizzate sui punti del grafico. |
ChartAxis / ChartAxisCollection | Configurazione degli assi — linee della griglia, unità, punto di intersezione, etichette delle tacche. |
ChartLegend / LegendPosition | Visibilità e posizionamento della legenda. |
ChartTitle | La didascalia complessiva del grafico. |
ChartDataTable | Tabella opzionale dei valori delle serie mostrata sotto l’area del grafico. |
ChartFormat | Formattazione di riempimento, contorno e forma condivisa dalla maggior parte degli elementi del grafico. |