コンボチャートの作成方法
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"); |