コンボチャートの作成方法

可能な使用シナリオ

Excelのコンボチャートを使用すると、データを理解しやすくするために複数のチャートタイプを簡単に組み合わせることができます。コンボチャートは、価格と数量などのさまざまな種類のデータを含む場合に便利です。また、データの数値が系列ごとに大幅に変動する場合にもコンボチャートが有効です。 次のデータセットを例に取ると、これらのデータはVHCLで言及されたデータに非常に類似していることがわかります。“総収入"に対応するseries0をラインチャートとして可視化したい場合は、どのように進めればよいでしょうか?

todo:image_alt_text

コンボチャート

以下のコードを実行すると、以下に示すようにコンボチャートが表示されます。

todo:image_alt_text

サンプルコード

以下のサンプルコードは、サンプルExcelファイルを読み込み、出力Excelファイルを生成します。

// 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");