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是的,标签是网格线,而不是数据点。查看我的更新答案,了解如何显示这些。。!如果你发现答案是有用的,请考虑点击它的左上方的支票下方的选票,当你把鼠标移到那里时。