c# - 在图表中仅显示大于 0 的值

标签 c# winforms

我有一个图表,我这样填充:

        hardSpecChart.DataSource = hardSpecModel;
        hardSpecChart.Series.First().XValueMember = "TasksName";
        hardSpecChart.Series.First().YValueMembers = "Time";

问题是有时我的 Y 值带有 0,所以我不想在图表中显示该项目的标签,所以要修复它,我只需

   hardSpecChart.DataSource = hardSpecModel.Where(x => x.Time > 0);

它有效,但没有预期的那样,我只想从图表中消失标签,而不是图表左上角的值:

enter image description here

我想在图表右上角显示所有标签,但如果它们的值为 0,我不想在图形中显示

enter image description here

最佳答案

对于饼图,一些额外的规则适用:

  • 只有 Y 值重要。 (但是如果您添加 X 值,您仍然可以在表达式中引用它们,请参见下文..)
  • 您可以有多个系列,但图表中仅显示第一个系列的积分。不过,来自其他系列的内容确实出现在传奇中。
  • 默认情况下,图例显示每个 Y 值,而不是系列名称,
  • 与往常一样,图例会受到属性 LegendTextIsVisibleInLegend 的影响,这两个属性都可以应用于整个系列或单个数据点。
  • 数据点显示为切片,其宽度(角度)与其值与所有绝对值之和成正比;看下图! 这意味着值为 0 的点根本不会显示。
  • 但是:如果您将 IsValueShownAsLabel 设置为 true零值标签仍将显示为 0

要抑制这些,您可以

  • 通过循环点(丑陋)来更改 0 点的属性,或者..
  • 设置一个 LabelFormat 来抑制整个系列的 0:someseries.LabelFormat = "#";

在下面的图表中我设置了

chart1.Series[0].LabelFormat = "#";
chart1.Series[0].LegendText = "#INDEX. = #VAL";

还有许多其他 keywords ,也可以组合..

enter image description here

关于c# - 在图表中仅显示大于 0 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51641180/

相关文章:

c# - 使用子进程调试强大工具的混合模式调试 Python/C#

c# - ASP :button onclick doesn't fire and page only refreshes

c# - RichTextBox 替换 Winforms .NET2.0+

winforms - 创建程序 Ala IRC 客户端、FICS 客户端

c# - 在将实体保存到数据库之前,如何在 NHibernate 监听器中获取实体的 ID?

c# - 发现循环依赖在哪里

c# - 如何从 C# 方法添加 Razor 标记?

winforms - 为什么 PowerShell 显示的表单有时不显示?

winforms - 如何用 DevExpress 替换消失的 60 个免费控件?

vb.net - 从 vb.net 中的数据 GridView 中查找文本