DioDocs for Excel
DioDocs for Excel
軸とその他の線
機能 > チャート > チャートオブジェクトのカスタマイズ > 軸とその他の線

軸は、プロット領域の 1つの次元のスケールを表示する手段となる、チャート要素の 1 つです。DioDocs for Excel では、チャート内の軸に、タイトル、大目盛りマーク、小目盛りマーク、目盛りマークラベル、主グリッド線、副グリッド線があります。

チャートの軸には次の 3つのタイプがあります。

  1. カテゴリ軸 - 一般に、すべてのチャートタイプで水平軸にカテゴリが表示されます。例外は横棒グラフで、横棒グラフのカテゴリは y 軸、つまり垂直軸に沿って表示されます。
  2. 値軸 - 垂直軸に系列値が表示されます。 例外は横棒グラフで、横棒グラフの系列値は x 軸、つまり水平軸に沿って表示されます。
  3. 系列軸 - 3D 面グラフ、3D 線グラフ、等高線グラフなどの 3 次元チャートのデータ系列を表示します。

通常、2 次元チャートは、カテゴリ軸と値軸の 2 つの軸で構成されます。カテゴリ軸は水平軸(X 軸)とも呼ばれ、引数を表すために使用されます。値軸は垂直軸(Y 軸)とも呼ばれ、ワークシートの行と列のデータ値を表します。ただし、3 次元チャートでは、水平軸と垂直軸とは別にもう 1 つ軸があります。この軸は、系列軸と呼ばれます。

IAxisインタフェースのプロパティを使用して、チャート内のカテゴリ軸、値軸、系列軸を構成できます。

チャートの軸を構成する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//IAxis.CategoryTypeを使用してカテゴリ軸のスケールタイプを設定します
IShape shape1 = worksheet.Shapes.AddChart(ChartType.ColumnClustered, 200, 50, 300, 300);

worksheet.Range["A1:D6"].Value = new object[,]
{
    {null, "S1", "S2", "S3"},
    {new DateTime(2015, 10, 21), 10, 25, 25},
    {new DateTime(2016, 10, 25), -51, -36, 27},
    {new DateTime(2017, 12, 20), 52, -85, -30},
    {new DateTime(2018, 5, 5), 22, 65, 65},
    {new DateTime(2019, 10, 12), 23, 69, 69}
};

shape1.Chart.SeriesCollection.Add(worksheet.Range["A1:D6"], RowCol.Columns, true, true);
worksheet.Range["A2:A6"].NumberFormat = "m/d/yyyy";
IAxis category_axis = shape1.Chart.Axes.Item(AxisType.Category);
category_axis.CategoryType = CategoryType.AutomaticScale;
//カテゴリ軸のカテゴリタイプは自動スケールです
var categorytype = category_axis.CategoryType;
//カテゴリ軸の実際のカテゴリタイプは時間スケールです
var actualcategorytype = category_axis.ActualCategoryType;


workbook.Worksheets.Add();
IWorksheet worksheet1 = workbook.Worksheets[1];
worksheet1.Range["A1:D6"].Value = new object[,]
 {
    {null, "S1", "S2", "S3"},
    {"Item1", 10, 25, 25},
    {"Item2", -51, -36, 27},
    {"Item3", 52, -85, -30},
    {"Item4", 22, 65, 65},
    {"Item5", 23, 69, 69}
 };
//カテゴリ軸とValue軸の書式を設定します
IShape shape2 = worksheet1.Shapes.AddChart(ChartType.ColumnClustered, 200, 50, 300, 300);
shape2.Chart.SeriesCollection.Add(worksheet1.Range["A1:D6"], RowCol.Columns, true, true);
IAxis category_axis1 = shape2.Chart.Axes.Item(AxisType.Category);
IAxis value_axis = shape2.Chart.Axes.Item(AxisType.Value);
//カテゴリ軸の書式を設定します
category_axis1.Format.Line.Color.RGB = Color.Green;
category_axis1.Format.Line.Weight = 3;
category_axis1.Format.Line.Style = LineStyle.ThickBetweenThin;
//Value軸の書式を設定します
value_axis.Format.Line.Color.RGB = Color.Red;
value_axis.Format.Line.Weight = 8;
value_axis.Format.Line.Style = LineStyle.ThinThin;

//タイムスケールカテゴリ軸の単位を設定します
worksheet1.Range["A8:A12"].NumberFormat = "m/d/yyyy";
worksheet1.Range["A7:D12"].Value = new object[,]
{
    {null, "S1", "S2", "S3"},
    {new DateTime(2015, 10, 21), 10, 25, 25},
    {new DateTime(2016, 10, 25), -51, -36, 27},
    {new DateTime(2017, 12, 20), 52, -85, -30},
    {new DateTime(2018, 5, 5), 22, 65, 65},
    {new DateTime(2019, 10, 12), 23, 69, 69}
};
IShape shape3 = worksheet1.Shapes.AddChart(ChartType.ColumnClustered, 200, 450, 300, 300);
shape3.Chart.SeriesCollection.Add(worksheet1.Range["A7:D12"], RowCol.Columns, true, true);
IAxis category_axis2 = shape3.Chart.Axes.Item(AxisType.Category);
category_axis2.MaximumScale = new DateTime(2019, 10, 1).ToOADate();
category_axis2.MinimumScale = new DateTime(2015, 10, 1).ToOADate();
category_axis2.BaseUnit = TimeUnit.Years;
category_axis2.MajorUnitScale = TimeUnit.Months;
category_axis2.MajorUnit = 4;
category_axis2.MinorUnitScale = TimeUnit.Days;
category_axis2.MinorUnit = 60;

//値の軸の単位を構成します
IShape shape4 = worksheet1.Shapes.AddChart(ChartType.ColumnClustered, 200, 800, 300, 300);
shape4.Chart.SeriesCollection.Add(worksheet1.Range["A1:D6"], RowCol.Columns, true, true);
IAxis category_axis3 = shape4.Chart.Axes.Item(AxisType.Category);
IAxis value_axis1 = shape4.Chart.Axes.Item(AxisType.Value);
value_axis1.MaximumScale = 150;
value_axis1.MinimumScale = 50;
value_axis1.MajorUnit = 20;
value_axis1.MinorUnit = 5;

//軸の交差を設定します
IShape shape5 = worksheet1.Shapes.AddChart(ChartType.ColumnClustered, 200, 1150, 300, 300);
shape5.Chart.SeriesCollection.Add(worksheet1.Range["A1:D6"], RowCol.Columns, true, true);
IAxis value_axis2 = shape5.Chart.Axes.Item(AxisType.Value);
value_axis2.Crosses = AxisCrosses.Maximum;

//軸のスケールタイプを設定します
IShape shape6 = worksheet1.Shapes.AddChart(ChartType.ColumnClustered, 200, 1500, 300, 300);
shape6.Chart.SeriesCollection.Add(worksheet1.Range["A1:D6"], RowCol.Columns, true, true);
IAxis value_axis3 = shape6.Chart.Axes.Item(AxisType.Value);
value_axis3.ScaleType = ScaleType.Logarithmic;
value_axis3.LogBase = 5;

//軸の目盛りを設定します
IShape shape7 = worksheet1.Shapes.AddChart(ChartType.ColumnClustered, 200, 1850, 300, 300);
shape7.Chart.SeriesCollection.Add(worksheet1.Range["A1:D6"], RowCol.Columns, true, true);
IAxis category_axis4 = shape7.Chart.Axes.Item(AxisType.Category);
category_axis4.Format.Line.Color.RGB = Color.Green;
category_axis4.MajorTickMark = TickMark.Inside;
category_axis4.MinorTickMark = TickMark.Cross;
category_axis4.TickMarkSpacing = 2;