【问题标题】:C# - Formatting Column ChartC# - 格式化柱形图
【发布时间】:2019-07-22 15:57:19
【问题描述】:

大家晚上好。

尝试使用一些数据格式化柱形图,但遇到了问题。 所有列都以它们的标签为中心。我希望每一列都在标签之间。

Here's the picture

代码:

Random rnd = new Random();
Chart myChart = new Chart();
myChart.Parent = this;
myChart.Size = new System.Drawing.Size(300, 185);
myChart.Location = new Point(865, 56);
myChart.Titles.Add("Distribution of clients per time span");
ChartArea chArea = new ChartArea("clientsDistribution");
chArea.AxisX.Title = "Time span";
chArea.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.DecreaseFont;
chArea.AxisY.Title = "Count";
chArea.AxisY.LabelAutoFitMaxFontSize = 5;
myChart.ChartAreas.Add(chArea);
Series mySeriesOfPoint = new Series("timeSpans");
mySeriesOfPoint.ChartType = SeriesChartType.Column;
mySeriesOfPoint.ChartArea = "clientsDistribution";
for (int x = 0; x < 9; x++)
{
    mySeriesOfPoint.Points.AddXY(x + 9, countByTimeSpan[x]);
    mySeriesOfPoint.Points[x].Color = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
}
myChart.Series.Add(mySeriesOfPoint);
myChart.Series["timeSpans"]["PointWidth"] = "1";

【问题讨论】:

标签: c# charts alignment


【解决方案1】:

在我看来,您可以增加 chArea.AxisX.IntervalOffset = 0.5; 。也许尝试将其设置为 1。

您可以尝试使用图表对齐选项:

AlignDataPointsByAxisLabel() 沿 X 轴对齐数据点 使用他们的轴标签。适用于索引多个系列时 并且它们的 X 值是字符串。

AlignDataPointsByAxisLabel(String) 对齐不同的数据点 使用它们的轴标签沿 X 轴进行系列。指定系列 图表中使用升序排列。

AlignDataPointsByAxisLabel(PointSortOrder) 使用对齐数据点 他们的轴标签。图表中的所有系列都对齐,使用 指定的排序顺序。

AlignDataPointsByAxisLabel(String, PointSortOrder) 对齐数据点 使用他们的轴标签。

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datavisualization.charting.chart.aligndatapointsbyaxislabel?view=netframework-4.7.2

【讨论】:

  • chArea.AxisX.IntervalOffset = 0.5;按照我想要的方式制作,但是 X 轴上的数字是双倍的,我不想看到。
  • AlignDataPointsByAxisLabel() 抛出一个异常,调用我必须将所有系列的 XValueIndexed 设置为 TRUE 或为每个点使用非空 XValue
  • 设法摆脱了那个异常,但我没有得到我期望的结果
猜你喜欢
  • 2016-11-08
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多