C# 在Y轴上显示Y值而不进行舍入

C# 在Y轴上显示Y值而不进行舍入,c#,charts,C#,Charts,如何删除图表中的舍入轴 我以13546格式传递一个值,图表显示1,35。对于给定的轴可以设置标签样式。格式 例如,您可以使用: chart1.ChartAreas["area1"].AxisX.LabelStyle.Format = "000.000\\%"; 或者这个: chart1.ChartAreas[0].AxisY.LabelStyle.Format = "###,##0.00000"; 注意:这将格式化

如何删除图表中的舍入轴


我以13546格式传递一个值,图表显示1,35。

对于给定的
可以设置
标签样式。格式

例如,您可以使用:

  chart1.ChartAreas["area1"].AxisX.LabelStyle.Format = "000.000\\%";     
或者这个:

  chart1.ChartAreas[0].AxisY.LabelStyle.Format = "###,##0.00000";
注意:这将格式化轴栅格的
标签
,因此您将其视为舍入。事实上,它是网格线的值,而不是数据点的值

要显示
数据点的Y值,我知道有三个选项,我将分别向您展示:

  • 可以在图形中的每个点上显示它们

  • 当鼠标悬停在某个点上时,可以将其显示为工具提示

  • 或者,您可以在
    自定义标签中沿Y轴显示它们,这可能是您想要的。请注意,只有在以下情况下,这才是一个有用的选项:

    • 数据点的数量非常有限
    • 这些点分布得相当远
    如果不满足一个或两个条件,则
    自定义标签将重叠

    设置
    CustomLabels
    有些棘手。下面是一段代码,它为每个数据点设置一个。如前所述,您可能需要插入支票以防止重叠

    // propare a few short names
    ChartArea CA = chart1.ChartAreas[0];
    Series S1 = chart1.Series[0];
    
    // this would be option one:
    S1.IsValueShownAsLabel = true;
    
    // we clear any previous CustomLabels
    CA.AxisY.CustomLabels.Clear();
    // we create a version of our points collection which sorted  by Y-Values:
    List<DataPoint> ptS = S1.Points.OrderBy(x => x.YValues[0]).ToList();
    
    // now, for option three we add the custom labels:
    for (int p = 0; p < ptS.Count; p++)
    {
        CustomLabel L = new CustomLabel(ptS[p].YValues[0] - 0.5, 
                                        ptS[p].YValues[0] + 0.5,  
                                        ptS[p].YValues[0].ToString("##0.0000"), 
                                        0, LabelMarkStyle.None);
        CA.AxisY.CustomLabels.Add(L);
    
        // this is option two: tooltips for each point
        ptS[p].ToolTip = ptS[p].YValues[0].ToString("##0.0000");
    }
    
    //请说出几个简短的名字
    ChartArea CA=chart1.ChartAreas[0];
    S1系列=图表1.系列[0];
    //这将是备选方案一:
    S1.IsValueShownAsLabel=true;
    //我们清除所有以前的自定义标签
    CA.AxisY.CustomLabels.Clear();
    //我们创建一个按Y值排序的点集合版本:
    List ptS=S1.Points.OrderBy(x=>x.yValue[0]).ToList();
    //现在,对于选项三,我们添加了自定义标签:
    对于(int p=0;p
    CustomLabel
    的前两个参数与Y位置有关,或者实际上是它们应该标记的Y值范围。接下来是值,格式化为显示所需的十进制数字。最后是第一行标签,没有记号

    下面是一个屏幕截图,显示了所有三个选项:


    现在我以13546格式传递一个值,图表显示13500是的,标签是网格线,而不是数据点。查看我的更新答案,了解如何显示这些。。!如果你发现答案是有用的,请考虑点击它的左上方的支票下方的选票,当你把鼠标移到那里时。