如何在图表顶部显示数据点值
How do you display a data points value on top of the chart
我正在使用 System.Web.UI.DataVisualization.Charting 来显示单个点系列。我尝试实现的功能类似于 IsValueShownAsLabel,只是我希望标签显示在图表顶部,而不是数据点旁边。
我已经尝试过智能标签,并设置了标签样式,但是这些只是改变了标签在数据点旁边的位置,即它是在点的左边还是右边,而不是实际的点的位置。
我不确定还有什么地方可以看,或者我想做的事情是否很容易实现。
经过一番挖掘,我自己找到了答案。
带有自定义标签的辅助 X 轴正是我要找的。
chart.ChartAreas[0].AxisX2.Enabled = AxisEnabled.True;
然后我遍历我的数据点并为每个值添加自定义标签
for(var i = 0; i < chart.Series[0].Points.Count; i++)
{
var lowerValue = i + 1 - .5;
var upperValue = i + 1 + .5;
var roundedValue = Math.Round(chart.Series[0].Points[i].YValues.First(), 1);
secondaryXAxis.CustomLabels.Add(lowerValue, upperValue, roundedValue.ToString(CultureInfo.InvariantCulture));
}
建议使用 -.5 和 +.5 以确保点落在您想要的线上。就像一个魅力。
我正在使用 System.Web.UI.DataVisualization.Charting 来显示单个点系列。我尝试实现的功能类似于 IsValueShownAsLabel,只是我希望标签显示在图表顶部,而不是数据点旁边。
我已经尝试过智能标签,并设置了标签样式,但是这些只是改变了标签在数据点旁边的位置,即它是在点的左边还是右边,而不是实际的点的位置。
我不确定还有什么地方可以看,或者我想做的事情是否很容易实现。
经过一番挖掘,我自己找到了答案。
带有自定义标签的辅助 X 轴正是我要找的。
chart.ChartAreas[0].AxisX2.Enabled = AxisEnabled.True;
然后我遍历我的数据点并为每个值添加自定义标签
for(var i = 0; i < chart.Series[0].Points.Count; i++)
{
var lowerValue = i + 1 - .5;
var upperValue = i + 1 + .5;
var roundedValue = Math.Round(chart.Series[0].Points[i].YValues.First(), 1);
secondaryXAxis.CustomLabels.Add(lowerValue, upperValue, roundedValue.ToString(CultureInfo.InvariantCulture));
}
建议使用 -.5 和 +.5 以确保点落在您想要的线上。就像一个魅力。