【问题标题】:Chart not showing first bar if series has only one point如果系列只有一个点,图表不显示第一个柱
【发布时间】:2019-01-15 10:32:37
【问题描述】:

我有一个 asp.net 图表,其中 Y 值是 int,X 值是 DateTime。如果我在每个系列中只有一个点,则即使通过调试数据点显示在系列中,也不会显示第一个栏。

如果我在每个系列中都有一个以上的点,那么一切都很好。唯一不同的是,对于一个系列,日期标签未显示在 X 轴上,每个系列中有两个点,轴上显示一个日期。不知道这是否重要。

具有一个数据点的系列

一个数据点的图表

具有两个或更多数据点的系列

包含两个或更多数据点的图表

更新

这是我的基表,只有一行(注意:与上述问题中的值不同):

我手动为每个“Gruppe”添加系列:

chart.Series.Add("Gruppe A");
chart.Series["Gruppe A"].ChartType = SeriesChartType.Column;
chart.Series["Gruppe A"].YValueMembers = "Gruppe A";
chart.Series["Gruppe A"].Color = System.Drawing.Color.FromArgb(0, 142, 207);
chart.Series["Gruppe A"].Label = "A:" + "#VALY";
chart.Series["Gruppe A"].XValueMember = "Datum";

AxisX 的格式:

chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Months;
chart.ChartAreas[0].AxisX.Interval = 1;
chart.ChartAreas[0].AxisX.LabelStyle.Format = "MMM/yy";
chart.ChartAreas[0].AxisX.Title = "Monat";

缺少第一个月的图表:

【问题讨论】:

  • 虽然您的问题很清楚,但我无法重现此问题。你能分享一个显示问题的最小示例的代码吗?
  • 您能否提供构建图表的代码?
  • @NLindbom 对不起,我病了,我更新了问题
  • @JamesBlackburn 对不起,我病了,我更新了问题
  • 您介意添加您拥有的整个方法,其中包括您的图表构建代码,包括所有“组”以及图表数据源的设置位置

标签: c# asp.net charts


【解决方案1】:

得到解决方案,当数据源中只有一行时,将AxisX.Interval设置为0:

if (dtChart.Rows.Count == 1) { chart.ChartAreas[0].AxisX.Interval = 0; } else { chart.ChartAreas[0].AxisX.Interval = 1; }

设置

chart.Series[0].IsXValueIndexed = true;

【讨论】:

  • 很高兴您找到了解决方案。但是下次请发布与您的问题相关的所有代码,否则很难提供帮助!
猜你喜欢
  • 2021-12-16
  • 2017-12-12
  • 2011-12-11
  • 1970-01-01
  • 2021-11-01
  • 2013-10-05
  • 2012-08-19
  • 2021-07-28
  • 1970-01-01
相关资源
最近更新 更多