Come creare un grafico dinamico a scorrimento

Possibili Scenari di Utilizzo

Un grafico dinamico a scorrimento è un tipo di rappresentazione grafica utilizzato per visualizzare dati che cambiano nel tempo. È progettato per fornire una visualizzazione in tempo reale dei dati, consentendo agli utenti di monitorare aggiornamenti e tendenze continui. Il grafico si aggiorna continuamente man mano che vengono aggiunti nuovi dati e scorre automaticamente per mostrare le informazioni più recenti.

I grafici dinamici a scorrimento sono comunemente utilizzati in vari settori, come finanza, analisi del mercato azionario, tracciamento del meteo e analisi dei social media. Consentono agli utenti di visualizzare e analizzare pattern di dati e prendere decisioni informate basate su informazioni in tempo reale.

Questi grafici sono tipicamente interattivi, consentendo all’utente di ingrandire o ridurre, scorrere attraverso dati storici e regolare gli intervalli temporali. Spesso supportano più serie di dati, fornendo una visione completa di diverse metriche e le loro correlazioni.

In generale, i grafici di scorrimento dinamici sono strumenti preziosi per monitorare e analizzare i dati a serie temporali, facilitando la presa delle decisioni in tempo reale e potenziando le capacità di visualizzazione dei dati.

Utilizzare Aspose Cells per creare un grafico di scorrimento dinamico

Nei paragrafi successivi, ti mostreremo come creare un grafico di scorrimento dinamico utilizzando Aspose.Cells. Ti mostreremo il codice per l’esempio, oltre al file Excel creato con questo codice.

Codice di Esempio

Il codice di esempio seguente genererà il File del grafico di scorrimento dinamico.

// How to Create a Dynamic Scrolling Chart
// Your local test path
string LocalPath = @"";
//Create a new workbook and access the first worksheet.
Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.Worksheets;
Worksheet sheet = sheets[0];
//Populate the data for the chart. Add values to cells and set series names.
sheet.Cells["A1"].PutValue("Day");
sheet.Cells["B1"].PutValue("Sales");
//In this example, we will add 30 days of data
int allDays = 30;
int showDays = 10;
int currentDay = 1;
for (int i = 0; i < allDays; i++)
{
string _cellA = String.Format("A{0}", i + 2);
string _cellB = String.Format("B{0}", i + 2);
sheet.Cells[_cellA].PutValue(i + 1);
sheet.Cells[_cellB].PutValue(50 * (i % 2) + 20 * (i % 3) + 10 * (i/3));
}
//This is the Dynamic Scrolling Control Data
sheet.Cells["G19"].PutValue("Start Day");
sheet.Cells["G20"].PutValue(currentDay);
sheet.Cells["H19"].PutValue("Show Days");
sheet.Cells["H20"].PutValue(showDays);
//Set the dynamic range for the chart's data source.
int index = sheets.Names.Add("Sheet1!ChtScrollData");
sheets.Names[index].RefersTo = "=OFFSET(Sheet1!$B$2,Sheet1!$G$20,0,Sheet1!$H$20,1)";
//Set the dynamic range for the chart's data labels.
index = sheets.Names.Add("Sheet1!ChtScrollLabels");
sheets.Names[index].RefersTo = "=OFFSET(Sheet1!$A$2,Sheet1!$G$20,0,Sheet1!$H$20,1)";
//Add a ScrollBar for the Dynamic Scrolling Chart
ScrollBar bar = sheet.Shapes.AddScrollBar(2, 0, 3, 0, 200, 30);
bar.Min = 0;
bar.Max = allDays - showDays;
bar.CurrentValue = currentDay;
bar.LinkedCell = "$G$20";
//Create a chart object and set its data source.
int chartIndex = sheet.Charts.Add(ChartType.Line, 2, 4, 15, 10);
Chart chart = sheet.Charts[chartIndex];
chart.NSeries.Add("Sales", true);
chart.NSeries[0].Values = "Sheet1!ChtScrollData";
chart.NSeries[0].XValues = "Sheet1!ChtScrollLabels";
//Save the workbook as an Excel file.
workbook.Save(LocalPath + "DynamicScrollingChart.xlsx");

Note

Nel file generato, è possibile operare sulla barra di scorrimento, mentre il grafico conta dinamicamente gli ultimi 10 set di dati. Ciò viene fatto utilizzando la formula “OFFSET” nel codice di esempio:

"=OFFSET(Sheet1!$B$2,Sheet1!$G$20,0,Sheet1!$H$20,1)"

È possibile provare a modificare il numero “10” in “15” nella cella “Foglio1!$H$20”, e il grafico dinamico conterà gli ultimi 15 set di dati. Ora abbiamo creato con successo un grafico di scorrimento dinamico utilizzando Aspose.Cells.