Hur man skapar dynamiskt rullande diagram
Möjliga användningsscenario
Dynamiskt rullande diagram är en typ av grafisk representation som används för att visa data som förändras över tiden. Det är utformat för att ge en realtidsvy över data, vilket gör att användare kan följa kontinuerliga uppdateringar och trender. Diagrammet uppdaterar kontinuerligt sig självt när ny data läggs till, och det rullar automatiskt för att visa den senaste informationen.
Dynamiska rullande diagram används vanligtvis inom olika branscher, såsom finans, analys av aktiemarknaden, väderövervakning och analys av sociala medier. De möjliggör för användare att visualisera och analysera datapunkter och fatta informerade beslut baserat på realtidsinformation.
Dessa diagram är vanligtvis interaktiva, vilket låter användaren zooma in eller ut, bläddra genom historisk data och justera tidsintervall. De stödjer ofta flera dataserier, vilket ger en omfattande vy över olika mätvärden och deras korrelationer.
Övergripande sett är dynamiska rullande diagram värdefulla verktyg för övervakning och analys av tidsseriedata, vilket underlättar beslut i realtid och förbättrar datavisualiseringskapaciteten.
Använd Aspose Cells för att skapa dynamiskt rullande diagram
I de nästa avsnitten kommer vi att visa dig hur du skapar ett dynamiskt rullande diagram med hjälp av Aspose.Cells. Vi kommer att visa koden för exemplet, samt Excel-filen skapad med denna kod.
Exempelkod
Den följande provkoden kommer att generera Dynamic Scrolling Chart File.
// 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"); |
Anteckningar
I den genererade filen kan du använda rullisten samtidigt som diagrammet dynamiskt räknar de senaste 10 datamängderna. Detta görs med “OFFSET”-formeln i provkoden:
"=OFFSET(Sheet1!$B$2,Sheet1!$G$20,0,Sheet1!$H$20,1)"
Du kan prova att ändra numret “10” till “15” i cellen “Ark1!$H$20”, och det dynamiska diagrammet kommer att räkna de senaste 15 datamängderna. Nu har vi skapat ett dynamiskt rullande diagram med hjälp av Aspose.Cells framgångsrikt.