Gestire le serie di dati dei grafici nelle presentazioni in .NET
Overview
Un grafico può memorizzare i valori tracciati nelle celle della cartella di lavoro o direttamente come letterali numerici. Un IChartSeries rappresenta un insieme di valori correlati, e ogni IChartDataPoint rappresenta un punto in quella serie. Gli oggetti IChartCategory forniscono le etichette o i valori di raggruppamento condivisi dalle serie. Nei grafici creati con dati predefiniti, i nomi delle serie, le categorie e i valori dei punti utilizzano gli oggetti IChartDataCell della cartella di lavoro del grafico.
Per un tipico grafico a categorie, la cartella di lavoro predefinita usa la riga 0 per i nomi delle serie, la colonna 0 per i nomi delle categorie e le celle rimanenti per i valori delle serie. Gli indici di foglio, riga e colonna passati a IChartDataWorkbook.GetCell sono basati su zero. Questo layout è utile quando si crea un grafico con dati predefiniti, ma non si deve presumere che ogni grafico esistente lo utilizzi. Per una presentazione caricata, ispezionare le celle a cui fanno riferimento le serie, le categorie e i punti dati prima di modificare i valori della cartella di lavoro.
Le impostazioni del grafico hanno tre ambiti diversi:
- Impostazioni a livello di serie, come IChartSeries.Format, forniscono l’aspetto predefinito per tutti i punti di una serie.
- Impostazioni a livello di punto dati, come IChartDataPoint.Format, sovrascrivono l’aspetto della serie per un singolo punto.
- Impostazioni di gruppo si applicano a serie compatibili che appartengono allo stesso IChartSeriesGroup. Accedere al gruppo tramite IChartSeries.ParentSeriesGroup quando è necessario impostare opzioni come la sovrapposizione o la larghezza dello spazio.
Quando non è impostato alcun riempimento esplicito per punto o serie, lo stile e il tema del grafico determinano l’aspetto automatico. Quando sono presenti sia la formattazione della serie sia quella del punto, la formattazione del punto ha la precedenza per quel punto.

Set Series Values Using Numeric Literals
Usare i letterali numerici quando i valori della serie provengono da dati o calcoli dell’applicazione e non richiedono riferimenti a celle del foglio. Impostare DataSourceTypeForValues su DataSourceType.DoubleLiterals prima di assegnare a ciascun punto la proprietà Value tramite AsLiteralDouble.
L’impostazione della raccolta controlla il tipo di origine di tutti i valori dei punti in quella serie. La proprietà Value.DataSourceType di ciascun punto restituisce il tipo selezionato; cambiarlo attraverso l’impostazione della raccolta. Con Worksheet, usare AsCell per accedere alla cella referenziata. Con DoubleLiterals, usare AsLiteralDouble per leggere o scrivere direttamente il numero.
L’esempio seguente crea un grafico a colonne con serie e categorie predefinite, quindi assegna i valori calcolati 10, 20 e così via ai punti esistenti della prima serie. Salva la presentazione, la riapre e stampa i valori memorizzati.
using System;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 300);
var series = chart.ChartData.Series[0];
series.DataPoints.DataSourceTypeForValues = DataSourceType.DoubleLiterals;
for (var i = 0; i < series.DataPoints.Count; i++)
{
series.DataPoints[i].Value.AsLiteralDouble = (i + 1) * 10;
}
presentation.Save("numeric_literals.pptx", SaveFormat.Pptx);
using var reopenedPresentation = new Presentation("numeric_literals.pptx");
var reopenedSlide = reopenedPresentation.Slides[0];
var reopenedChart = (IChart)reopenedSlide.Shapes[0];
var reopenedSeries = reopenedChart.ChartData.Series[0];
foreach (var point in reopenedSeries.DataPoints)
{
Console.WriteLine(point.Value.AsLiteralDouble);
}
Il tipo di origine del valore del punto è separato da IChartData.DataSourceType, che identifica la configurazione della cartella di lavoro interna o esterna del grafico. L’uso di lettere numeriche non rimuove, di per sé, la cartella di lavoro incorporata. In questo esempio la cartella rimane disponibile per le etichette delle categorie, i nomi delle serie e le altre serie. Vedere Chart Workbook per la gestione della cartella di lavoro.
Per i grafici a dispersione e a bolle, impostare DataSourceTypeForXValues e DataSourceTypeForYValues per scegliere le origini per XValue e YValue. I grafici a bolle usano anche DataSourceTypeForBubbleSizes per BubbleSize. Impostare ciascuna origine applicabile su DoubleLiterals prima di assegnare i numeri tramite la proprietà AsLiteralDouble del valore corrispondente.
Set the Chart Series Overlap
IChartSeries.Overlap indica quanto le barre o le colonne si sovrappongono in un grafico 2D, da –100 a 100 percento. È una proiezione in sola lettura dell’impostazione sul gruppo di serie genitore. Impostare IChartSeriesGroup.Overlap per aggiornare tutte le serie compatibili in quel gruppo. Questa opzione si applica ai tipi di grafico che visualizzano barre o colonne raggruppate; non influisce sui gruppi di serie non correlati in un grafico combinato.
L’esempio seguente imposta la sovrapposizione per il gruppo che contiene la prima serie:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const sbyte overlapPercent = 30;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
// Il nuovo grafico contiene serie di esempio, categorie e valori.
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
series.ParentSeriesGroup.Overlap = overlapPercent;
presentation.Save("series_overlap.pptx", SaveFormat.Pptx);
Il risultato:

Change the Series Fill Color
Usare IChartSeries.Format per impostare il riempimento predefinito per un’intera serie. Se un punto ha già un riempimento esplicito, l’impostazione IChartDataPoint.Format sovrascrive il riempimento della serie per quel punto.
L’esempio seguente applica un riempimento solido blu alla prima serie:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Blue;
presentation.Save("series_color.pptx", SaveFormat.Pptx);
Il risultato:

Change the Series Name
Il nome di una serie è memorizzato nella cartella di lavoro dei dati del grafico e di solito viene visualizzato nella legenda. Nella cartella di lavoro predefinita creata per un grafico a colonne raggruppate, la cella B1 si trova alla riga 0, colonna 1 e contiene il nome della prima serie. Le costanti nominate nell’esempio seguente rendono esplicita tale struttura:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int worksheetIndex = 0;
const int seriesNameRowIndex = 0;
const int firstSeriesColumnIndex = 1;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var workbook = chart.ChartData.ChartDataWorkbook;
var seriesNameCell = workbook.GetCell(worksheetIndex, seriesNameRowIndex, firstSeriesColumnIndex);
seriesNameCell.Value = "Revenue";
presentation.Save("series_name.pptx", SaveFormat.Pptx);
È anche possibile aggiornare la cella già referenziata da IChartSeries.Name. Questo approccio evita di presumere una riga e colonna specifiche in un grafico esistente:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const int firstNameCellIndex = 0;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
var seriesNameCell = series.Name.AsCells[firstNameCellIndex];
seriesNameCell.Value = "Revenue";
presentation.Save("series_name.pptx", SaveFormat.Pptx);
Il risultato:

Create a Series with a Name from Multiple Cells
Un nome di serie composito è utile quando il nome del prodotto e il periodo di riferimento sono memorizzati in celle separate della cartella di lavoro. Per esempio, è possibile combinare Product A in B1 e 2026 in C1 in un unico nome di serie mantenendo entrambe le parti collegate alle rispettive celle di origine.
Usare IChartDataWorkbook.GetCellCollection per recuperare l’intervallo dei nomi, quindi passare tale raccolta a IChartSeriesCollection.Add. L’argomento skipHiddenCells controlla se includere le celle nascoste: true le esclude, mentre false le include. Questo esempio usa false per includere tutte le celle dell’intervallo dei nomi.
L’esempio seguente crea una presentazione con una serie e due punti dati. Le celle B1:C1 forniscono solo il nome della serie; A2:A3 forniscono le etichette delle categorie, e B2:B3 forniscono i valori numerici.
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 620, 180);
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
chart.HasLegend = true;
var workbook = chart.ChartData.ChartDataWorkbook;
workbook.Clear(0);
// Queste due celle forniscono il nome della serie.
workbook.GetCell(0, 0, 1, "Product A");
workbook.GetCell(0, 0, 2, "2026");
var nameCells = workbook.GetCellCollection("Sheet1!$B$1:$C$1", skipHiddenCells: false);
var series = chart.ChartData.Series.Add(nameCells, ChartType.ClusteredColumn);
// Celle separate forniscono le categorie e i punti dati numerici.
var northCategory = workbook.GetCell(0, 1, 0, "North");
var southCategory = workbook.GetCell(0, 2, 0, "South");
chart.ChartData.Categories.Add(northCategory);
chart.ChartData.Categories.Add(southCategory);
var northValue = workbook.GetCell(0, 1, 1, 120);
var southValue = workbook.GetCell(0, 2, 1, 150);
series.DataPoints.AddDataPointForBarSeries(northValue);
series.DataPoints.AddDataPointForBarSeries(southValue);
presentation.Save("composite_series_name.pptx", SaveFormat.Pptx);
Il nome della serie risultante è Product A 2026, con uno spazio tra i due valori di cella. La legenda lo mostra come una singola voce per entrambe le colonne. L’immagine sotto è stata renderizzata dalla presentazione salvata:

Get the Automatic Series Fill Color
IChartSeries.GetAutomaticSeriesColor restituisce il colore calcolato dall’indice della serie e dallo stile del grafico. Questo è il colore usato quando il riempimento della serie non è stato definito esplicitamente. La chiamata al metodo legge il colore calcolato; non assegna un nuovo riempimento.
L’esempio seguente stampa il colore automatico di ciascuna serie predefinita:
using System;
using Aspose.Slides;
using Aspose.Slides.Charts;
const int firstSlideIndex = 0;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var seriesCount = chart.ChartData.Series.Count;
for (var seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++)
{
var series = chart.ChartData.Series[seriesIndex];
var automaticColor = series.GetAutomaticSeriesColor();
Console.WriteLine($"Series {seriesIndex}: {automaticColor.Name}");
}
Output di esempio per lo stile di grafico predefinito:
Series 0: ff4f81bd
Series 1: ffc0504d
Series 2: ff9bbb59
I colori esatti dipendono dallo stile e dal tema del grafico.
Set Invert Fill Color for a Chart Series
Per le serie a barre, colonne e bolle, IChartSeries.InvertIfNegative può visualizzare i valori negativi con un riempimento diverso. Impostare il riempimento regolare della serie su solido, abilitare l’inversione e assegnare il colore del valore negativo tramite IChartSeries.InvertedSolidFillColor. I numeri negativi rimangono invariati nella cartella di lavoro; cambia solo il colore di visualizzazione.
L’esempio seguente sostituisce i dati predefiniti del grafico con una singola serie. La riga 0 del foglio contiene il nome della serie, la colonna 0 contiene i nomi delle categorie e la colonna 1 contiene i valori:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int worksheetIndex = 0;
const int headerRowIndex = 0;
const int categoryColumnIndex = 0;
const int firstSeriesColumnIndex = 1;
const int firstDataRowIndex = 1;
var categoryNames = new[] { "Category 1", "Category 2", "Category 3" };
var seriesValues = new[] { -20, 50, -30 };
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var chartData = chart.ChartData;
var workbook = chartData.ChartDataWorkbook;
chartData.Series.Clear();
chartData.Categories.Clear();
var seriesNameCell = workbook.GetCell(worksheetIndex, headerRowIndex, firstSeriesColumnIndex, "Series 1");
var series = chartData.Series.Add(seriesNameCell, chart.Type);
for (var categoryIndex = 0; categoryIndex < categoryNames.Length; categoryIndex++)
{
var dataRowIndex = firstDataRowIndex + categoryIndex;
var categoryName = categoryNames[categoryIndex];
var seriesValue = seriesValues[categoryIndex];
var categoryCell = workbook.GetCell(worksheetIndex, dataRowIndex, categoryColumnIndex, categoryName);
chartData.Categories.Add(categoryCell);
var valueCell = workbook.GetCell(worksheetIndex, dataRowIndex, firstSeriesColumnIndex, seriesValue);
series.DataPoints.AddDataPointForBarSeries(valueCell);
}
var automaticSeriesColor = series.GetAutomaticSeriesColor();
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = automaticSeriesColor;
series.InvertIfNegative = true;
series.InvertedSolidFillColor.Color = Color.Red;
presentation.Save("inverted_solid_fill_color.pptx", SaveFormat.Pptx);
Il risultato:

È possibile abilitare l’inversione per un singolo punto tramite IChartDataPoint.InvertIfNegative. Nell’esempio seguente l’inversione è disabilitata per la serie e abilitata solo per il punto selezionato. Al punto è inoltre assegnato un valore negativo affinché l’effetto sia visibile:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const int targetDataPointIndex = 2;
const int negativeValue = -30;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
var automaticSeriesColor = series.GetAutomaticSeriesColor();
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = automaticSeriesColor;
series.InvertedSolidFillColor.Color = Color.Red;
series.InvertIfNegative = false;
var dataPoint = series.DataPoints[targetDataPointIndex];
dataPoint.YValue.AsCell.Value = negativeValue;
dataPoint.InvertIfNegative = true;
presentation.Save("data_point_invert_color_if_negative.pptx", SaveFormat.Pptx);
Clear a Specific Data Point Value
Per rendere vuoto un punto senza rimuovere gli altri, impostare la cella della cartella di lavoro di supporto su null. Per un grafico a colonne, il valore tracciato è disponibile tramite IChartDataPoint.YValue. Il punto dati rimane nella stessa posizione di categoria, ma il grafico lo tratta come vuoto in base alle impostazioni dei valori vuoti del grafico.
L’esempio seguente cancella solo il secondo punto della prima serie:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const int targetDataPointIndex = 1;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
var dataPoint = series.DataPoints[targetDataPointIndex];
dataPoint.YValue.AsCell.Value = null;
presentation.Save("clear_data_point_value.pptx", SaveFormat.Pptx);
I grafici a dispersione usano celle X e Y separate, e i grafici a bolle usano anche una cella per la dimensione. Cancellare solo la cella che rappresenta il valore da rimuovere. Non chiamare IChartDataPointCollection.Clear quando si desidera mantenere gli altri punti, poiché quel metodo rimuove tutti i punti dati dalla raccolta.
Control the Display of Empty Cells
Le celle nascoste che contengono valori costituiscono un caso distinto dalle celle vuote. Per includere o escludere dati da righe e colonne nascoste del foglio, vedere Include Data from Hidden Rows and Columns.
Una cella vuota della cartella di lavoro rappresenta dati mancanti; una cella contenente 0 rappresenta un valore numerico noto. Impostare IChartDataCell.Value su null per rendere la cella vuota. Uno zero numerico rimane zero indipendentemente dall’impostazione delle celle vuote.
Usare IChart.DisplayBlanksAs per scegliere come il grafico visualizza le celle vuote. Questa impostazione si applica all’intero grafico. Cambia il modo in cui i valori vuoti vengono tracciati, senza riempire la cella vuota con zero o con un valore interpolato.
L’esempio autonomo seguente crea un grafico a linee con una serie, cancella il valore per il giorno 3 e salva lo stesso grafico con ciascuna modalità. Non è necessario alcun file di input. L’IChartDataWorkbook utilizza il foglio 0, la colonna 0 per le etichette delle categorie e la colonna 1 per i valori; la riga 0 contiene il nome della serie. I dati finali sono 10, 20, empty, 30, 40.
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.LineWithMarkers, 40, 40, 640, 400);
var chartData = chart.ChartData;
var workbook = chartData.ChartDataWorkbook;
chartData.Series.Clear();
chartData.Categories.Clear();
var seriesNameCell = workbook.GetCell(0, 0, 1, "Measurements");
var series = chartData.Series.Add(seriesNameCell, chart.Type);
var values = new[] { 10, 20, 25, 30, 40 };
for (var i = 0; i < values.Length; i++)
{
var categoryCell = workbook.GetCell(0, i + 1, 0, $"Day {i + 1}");
chartData.Categories.Add(categoryCell);
var valueCell = workbook.GetCell(0, i + 1, 1, values[i]);
series.DataPoints.AddDataPointForLineSeries(valueCell);
}
// Lasciare il giorno 3 veramente vuoto, mantenendo la sua categoria e il punto dati.
workbook.GetCell(0, 3, 1).Value = null;
var modes = new[] { DisplayBlanksAsType.Gap, DisplayBlanksAsType.Zero, DisplayBlanksAsType.Span };
foreach (var mode in modes)
{
chart.DisplayBlanksAs = mode;
presentation.Save($"empty_cells_{mode}.pptx", SaveFormat.Pptx);
}
Ogni file di output registra la modalità assegnata prima del salvataggio: empty_cells_Gap.pptx, empty_cells_Zero.pptx e empty_cells_Span.pptx. Per salvare una sola versione, assegnare la modalità desiderata e salvare la presentazione una volta anziché iterare sulle modalità.
Il confronto sotto mostra gli stessi dati nei tre file. Il giorno 3 è vuoto nella cartella di lavoro in tutti i casi:

L’effetto visibile dipende dal tipo di grafico. Un grafico a linee rende tutti e tre i risultati facili da confrontare. I grafici a barre e a colonne non hanno una linea da collegare attraverso una categoria mancante, quindi Span non può produrre il segmento di collegamento mostrato sopra; una colonna mancante e una colonna con altezza zero possono anche apparire simili. Analogamente, un grafico a dispersione con solo marcatori non ha linea di collegamento. Non ci si deve aspettare tre risultati distinti per ogni tipo di grafico; verificare l’output per il tipo utilizzato.
Set the Series Gap Width
La larghezza dello spazio è lo spazio tra cluster adiacenti di barre o colonne, espresso in percentuale della larghezza della barra o della colonna. Come la sovrapposizione, appartiene al gruppo di serie genitore piuttosto che a una singola serie. Impostare IChartSeriesGroup.GapWidth una volta per il gruppo. Un valore più grande crea più spazio tra i cluster; un valore più piccolo li rende più densi.
L’esempio seguente modifica la larghezza dello spazio e salva solo la presentazione finale:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const int gapWidthPercent = 30;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.StackedColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
series.ParentSeriesGroup.GapWidth = gapWidthPercent;
presentation.Save("gap_width_30.pptx", SaveFormat.Pptx);
Il risultato:

FAQ
Which chart types support data series?
Tutti i tipi di grafico rappresentati dall’enumerazione ChartType utilizzano dati di grafico, ma le loro serie non hanno tutte la stessa struttura di valori o impostazioni. Per esempio, i grafici a categorie usano categorie e valori, i grafici a dispersione usano valori X e Y, e i grafici a bolle aggiungono le dimensioni delle bolle. Utilizzare il metodo di creazione dei punti dati che corrisponde al tipo di serie. Opzioni come sovrapposizione e larghezza dello spazio si applicano solo a gruppi di barre o colonne compatibili.
What is a chart series group?
Un IChartSeriesGroup contiene serie compatibili che condividono impostazioni di tracciamento a livello di gruppo. Un grafico combinato può contenere più di un gruppo, quindi la modifica del gruppo raggiunta tramite una serie non cambia necessariamente tutte le serie del grafico.
Does a newly created chart contain default data?
Sì. Per impostazione predefinita, IShapeCollection.AddChart crea serie, categorie e valori di esempio. È possibile modificare quelle celle o cancellare sia le raccolte di serie sia quelle di categorie prima di aggiungere un set di dati completamente personalizzato. Un overload può anche creare un grafico senza dati predefiniti.
How are chart objects connected to workbook cells?
I nomi delle serie, le etichette delle categorie e i valori dei punti dati fanno riferimento a celle di un IChartDataWorkbook. Modificare una cella referenziata aggiorna l’elemento corrispondente del grafico. Quando si crea un set di dati personalizzato, mantenere le righe delle categorie e le righe dei valori delle serie allineate in modo che ciascun punto sia tracciato sotto la categoria prevista.
How do I clear one point instead of the whole series?
Impostare la cella del valore pertinente su null per mantenere la posizione di categoria del punto come punto vuoto. Usare IChartDataPointCollection.Clear solo quando si intende rimuovere tutti i punti di quella serie. Se si rimuovono anche le categorie, aggiornare tutte le serie affinché i loro valori rimangano allineati con la raccolta delle categorie.
How are empty points displayed?
Il risultato dipende dal tipo di grafico e da IChart.DisplayBlanksAs. I grafici supportati possono visualizzare i vuoti come spazi, come valori zero o collegando i punti vicini. Scegliere l’impostazione che corrisponde al significato dei dati mancanti nella presentazione. Vedere Control the Display of Empty Cells per un esempio completo e un confronto visivo.
How are negative values formatted?
Per le serie a barre, colonne e bolle supportate, abilitare IChartSeries.InvertIfNegative e impostare IChartSeries.InvertedSolidFillColor. È possibile sovrascrivere il comportamento per un singolo punto con IChartDataPoint.InvertIfNegative. Queste proprietà influenzano la formattazione, non i valori numerici memorizzati.
Which formatting wins when both a series and a point are formatted?
La formattazione esplicita del punto dati ha la precedenza per quel punto. Gli altri punti continuano a utilizzare la formattazione esplicita della serie o, se la formattazione della serie non è definita, lo stile e il tema automatici del grafico. Le proprietà di gruppo come sovrapposizione e larghezza dello spazio controllano il layout e non sovrascrivono la formattazione a livello di punto.
Is there a limit to how many series a chart can contain?
Aspose.Slides non impone un limite fisso separato al numero di serie. In pratica, i vincoli del file di presentazione, la memoria disponibile, i tempi di rendering e la leggibilità del grafico determinano un limite pratico.
What should I change when columns are too close together or too far apart?
Impostare IChartSeriesGroup.GapWidth sul gruppo di serie genitore appropriato. Aumentare il valore per ampliare lo spazio tra i cluster, o diminuirlo per avvicinare i cluster.