Cómo crear un gráfico combinado
Escenarios de uso posibles
Los gráficos combo en Excel te permiten aprovechar esta opción porque puedes combinar fácilmente dos o más tipos de gráficos para hacer que tus datos sean comprensibles. Los gráficos combo son útiles cuando tus datos contienen múltiples tipos de valores, incluidos precio y volumen. Además, los gráficos combo son factibles cuando los números de tus datos varían ampliamente de serie a serie. Tomando el siguiente conjunto de datos como ejemplo, podemos observar que estos datos son bastante similares a los datos mencionados en VHCL. Si queremos visualizar la serie0, que corresponde a “Ingresos totales,” como un gráfico de líneas, ¿cómo deberíamos proceder?
Gráfico combo
Después de ejecutar el código a continuación, verás el gráfico combo como se muestra a continuación.
Código de muestra
El siguiente código de muestra carga el archivo de Excel de muestra y genera el archivo de Excel de salida.
// Create the workbook | |
Workbook workbook = new Workbook("combo.xlsx"); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add a stock vloume(VHLC) | |
int pieIdx = worksheet.Charts.Add(ChartType.StockVolumeHighLowClose, 15, 0, 34, 12); | |
// Retrieve the Chart object | |
Chart chart = worksheet.Charts[pieIdx]; | |
// Set the legend can be showed | |
chart.ShowLegend = true; | |
// Set the chart title name | |
chart.Title.Text = "Combo Chart"; | |
// Set the Legend at the bottom of the chart area | |
chart.Legend.Position = LegendPositionType.Bottom; | |
// Set data range | |
chart.SetChartDataRange("A1:E12", true); | |
// Set category data | |
chart.NSeries.CategoryData = "A2:A12"; | |
// Set the Series[1] Series[2] and Series[3] to different Marker Style | |
for (int j = 0; j < chart.NSeries.Count; j++) | |
{ | |
switch (j) | |
{ | |
case 1: | |
chart.NSeries[j].Marker.MarkerStyle = ChartMarkerType.Circle; | |
chart.NSeries[j].Marker.MarkerSize = 15; | |
chart.NSeries[j].Marker.Area.Formatting = FormattingType.Custom; | |
chart.NSeries[j].Marker.Area.ForegroundColor = Color.Pink; | |
chart.NSeries[j].Border.IsVisible = false; | |
break; | |
case 2: | |
chart.NSeries[j].Marker.MarkerStyle = ChartMarkerType.Dash; | |
chart.NSeries[j].Marker.MarkerSize = 15; | |
chart.NSeries[j].Marker.Area.Formatting = FormattingType.Custom; | |
chart.NSeries[j].Marker.Area.ForegroundColor = Color.Orange; | |
chart.NSeries[j].Border.IsVisible = false; | |
break; | |
case 3: | |
chart.NSeries[j].Marker.MarkerStyle = ChartMarkerType.Square; | |
chart.NSeries[j].Marker.MarkerSize = 15; | |
chart.NSeries[j].Marker.Area.Formatting = FormattingType.Custom; | |
chart.NSeries[j].Marker.Area.ForegroundColor = Color.LightBlue; | |
chart.NSeries[j].Border.IsVisible = false; | |
break; | |
} | |
} | |
// Set the chart type for Series[0] | |
chart.NSeries[0].Type = ChartType.Line; | |
// Set style for the border of first series | |
chart.NSeries[0].Border.Style = LineType.Solid; | |
// Set Color for the first series | |
chart.NSeries[0].Border.Color = Color.DarkBlue; | |
// Fill the PlotArea area with nothing | |
chart.PlotArea.Area.Formatting = FormattingType.None; | |
// Save the Excel file | |
workbook.Save("out.xlsx"); |