私のチャートは、今後 30 年間の値を予測します。最初の値は 1 年として表示する必要があります。その後、5 年、10 年、... 30 年まで表示されます。ただし、内部的には最初の年は 0 であり、省略されています。
カスタム ラベルを追加しようとしましたが、他のラベルが壊れるだけです。
AxisX の代わりに AxisX2 に追加すると、何もしません。チャートを作成して線を追加するコードは次のとおりです。
public static Chart MakeChart(string title)
{
var chart = new Chart();
var area = new ChartArea("GrafiekGebied");
foreach (var axis in area.Axes)
{
axis.TitleForeColor = defaultColor;
axis.LineColor = defaultColor;
axis.InterlacedColor = defaultColor;
axis.LabelStyle.Font = letterType;
axis.LabelAutoFitMinFontSize = (int)letterType.Size;
axis.LabelAutoFitMaxFontSize = (int)letterType.Size;
axis.MajorGrid.LineColor = defaultColor;
axis.MajorTickMark.Enabled = false;
axis.MinorGrid.LineColor = defaultColor;
axis.MinorTickMark.LineColor = defaultColor;
}
CustomLabel firstXlabel = new CustomLabel();
firstXlabel.FromPosition = 0;
firstXlabel.ToPosition = 0;
firstXlabel.RowIndex = 0; // Also tried 1
firstXlabel.Text = "1jr";
area.AxisY.LineWidth = 0;
area.AxisY.LabelStyle.Format = "€{#,##}";
area.AxisX.TextOrientation = TextOrientation.Horizontal;
area.AxisX.CustomLabels.Add(firstXlabel); // Adding it to AxisX2 does nothing
area.AxisX.IsMarginVisible = true;
area.AxisX.MajorGrid.Enabled = false;
area.AxisX.IntervalOffset = 1;
area.AxisX.LabelStyle.Format = "{#}jr";
area.AxisX.MajorTickMark.Enabled = true;
area.AxisX2.LineWidth = 1;
area.AxisX2.LineColor = Color.Green;
var legend = new Legend();
legend.LegendStyle = LegendStyle.Row;
legend.Docking = Docking.Bottom;
legend.DockedToChartArea = area.Name;
legend.Font = lettering;
legend.IsDockedInsideChartArea = false;
chart.ForeColor = defaultColor;
chart.Font.Name = lettering.FontFamily.Name;
chart.Font.Size = new System.Web.UI.WebControls.FontUnit(lettering.Size);
chart.Width = 280;
chart.Height = 180;
chart.Legends.Add(legend);
chart.ChartAreas.Add(area);
chart.BorderlineColor = defaultColor;
chart.BorderlineWidth = 1;
chart.BorderlineDashStyle = ChartDashStyle.Solid;
chart.Titles.Add(title);
return chart;
}
public static void AddData(Chart chart, ChartInput input)
{
var line = new Series(input.Subtitle);
line.ChartArea = chart.ChartAreas[0].Name;
line.ChartType = SeriesChartType.Spline;
line.Color = input.Color;
line.BorderWidth = 3;
line.MarkerStyle = MarkerStyle.Circle;
line.MarkerSize = 7;
line.MarkerStep = 5;
for (int i = 0; i < input.Waarden.Length; i++)
{
line.Points.AddXY(i, input.Values[i]);
}
chart.Series.Add(line);
}
グラフを作成した後、Aspose を使用して Word ドキュメントに挿入しますが、グラフの作成方法には関係ありません。