Lavorare con i grafici

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.Add che 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 = true su una serie prima di configurare la sua raccolta DataLabels — le proprietà di visualizzazione della raccolta non hanno effetto visibile finché le etichette sono disattivate.
  • Leggi Chart.ChartSpace o controlla lo specifico ChartType prima 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

ProblemaCausaCorrezione
Il nuovo grafico mostra dati demo inaspettatiInsertChart popola il grafico con serie segnapostoChiama chart.Series.Clear() prima di aggiungere le tue serie
Le etichette dei dati non compaionoHasDataLabels non è stato impostato sulla serie prima di configurare DataLabelsImposta series.HasDataLabels = true, poi configura ShowValue/ShowCategoryName su series.DataLabels
Le linee della griglia non vengono visualizzate sull’asse dei valoriHasMajorGridlines/HasMinorGridlines predefiniti a false per quell’asseImposta chart.AxisY.HasMajorGridlines = true (e HasMinorGridlines se necessario)
La legenda non appareChart.Legend.Position è impostato su LegendPosition.NoneImposta 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/MetodoDescrizione
DocumentBuilder.InsertChartInserisce una forma di grafico al cursore e la restituisce.
ChartL’oggetto di configurazione del grafico, raggiunto tramite Shape.Chart.
ChartTypeEnum dei tipi di grafico disponibili (line, bar, pie e tipi di grafico Word-2016).
ChartSeriesCollection / ChartSeriesLe serie di dati del grafico e i metodi per aggiungerle, inserirle o rimuoverle.
ChartDataPointCollection / ChartDataPointFormattazione per punto all’interno di una serie.
ChartDataLabelCollection / ChartDataLabelEtichette di valore/categoria visualizzate sui punti del grafico.
ChartAxis / ChartAxisCollectionConfigurazione degli assi — linee della griglia, unità, punto di intersezione, etichette delle tacche.
ChartLegend / LegendPositionVisibilità e posizionamento della legenda.
ChartTitleLa didascalia complessiva del grafico.
ChartDataTableTabella opzionale dei valori delle serie mostrata sotto l’area del grafico.
ChartFormatFormattazione di riempimento, contorno e forma condivisa dalla maggior parte degli elementi del grafico.

Vedi anche

 Italiano