如何创建组合图表
Contents
[
Hide
]
可能的使用场景
Excel中的组合图表让您能够利用此选项,因为您可以轻松地组合两种或更多种图表类型,以使您的数据易于理解。当您的数据包含多种值(包括价格和交易量)时,组合图表是有用的。此外,当您的数据数字在系列之间有明显变化时,组合图表是可行的。 以以下数据集为例,我们可以观察到这些数据与VHCL中提到的数据相当相似。如果我们希望将与“总收入”对应的series0可视化为线图表,应该如何操作?
组合图表
运行以下代码后,您将看到下面展示的组合图表。
示例代码
以下示例代码加载了示例Excel文件并生成了输出Excel文件。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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"); |