我正在C#中使用DataVisualization.Charting生成柱状图-我遇到的问题是,要添加以显示条形值的标签不在图表顶部显示(请参见下图)。
0值还可以,但是在下面的情况下,在理想情况下,我希望列上带有图表顶部数据的标签放置在其自身内-这完全可能吗?
我已经通过Series SmartLabelStyles尝试了各种设置,但是无法找到可行的解决方案。
以下是我如何向图表添加标签:
chart.Series[0].Points[0].Label = Math.Round(pos1, 2).ToString() + "hrs " + Math.Round(((pos1 / totalHoursV) * 100), 2).ToString() + "%";
更新
我尝试按照此答案(https://stackoverflow.com/a/28590709/2822664)在底部显示标签,该标签实际上对条形图中的值有效并在条形图中显示了值,但是随后弄乱了0,但显示不正确(请参见下图)。
答案 0 :(得分:1)
您可以通过设置custom property来控制Labels
的 alignment 。
这可以对整个Series
进行,也可以对每个DataPoint
进行,分别:
Series s = chart1.Series[0];
s.ChartType = SeriesChartType.Column;
s.IsValueShownAsLabel = true;
for (int i = 0; i < 30; i++)
{
int p = s.Points.AddXY(i, rnd.Next(30));
DataPoint pt = s.Points[p];
if (pt.YValues[0] > 10) // use a suitable value!
{
pt.SetCustomProperty("LabelStyle", "Bottom");
pt.LabelForeColor = Color.White;
}
else pt.LabelBackColor = Color.White;
}