我有一个图表,我这样填充:
hardSpecChart.DataSource = hardSpecModel;
hardSpecChart.Series.First().XValueMember = "TasksName";
hardSpecChart.Series.First().YValueMembers = "Time";
问题是有时我的 Y
值带有 0
,所以我不想在图表中显示该项目的标签,所以要修复它,我只需
hardSpecChart.DataSource = hardSpecModel.Where(x => x.Time > 0);
它有效,但没有预期的那样,我只想从图表中消失标签,而不是图表左上角的值:
我想在图表右上角显示所有标签,但如果它们的值为 0,我不想在图形中显示
最佳答案
对于饼图,一些额外的规则适用:
- 只有 Y 值重要。 (但是如果您添加 X 值,您仍然可以在表达式中引用它们,请参见下文..)
- 您可以有多个系列,但图表中仅显示第一个系列的积分。不过,来自其他系列的内容确实出现在传奇中。
- 默认情况下,
图例
显示每个 Y 值,而不是系列名称, - 与往常一样,图例会受到属性
LegendText
和IsVisibleInLegend
的影响,这两个属性都可以应用于整个系列或单个数据点。 - 数据点显示为切片,其宽度(角度)与其值与所有绝对值之和成正比;看下图! 这意味着值为
0
的点根本不会显示。 - 但是:如果您将
IsValueShownAsLabel
设置为true
,零值标签仍将显示为0
。
要抑制这些,您可以
- 通过循环点(丑陋)来更改
0
点的属性,或者.. - 设置一个
LabelFormat
来抑制整个系列的0
:someseries.LabelFormat = "#";
在下面的图表中我设置了
chart1.Series[0].LabelFormat = "#";
chart1.Series[0].LegendText = "#INDEX. = #VAL";
还有许多其他 keywords ,也可以组合..
关于c# - 在图表中仅显示大于 0 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51641180/