Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataVisualization图表-在条形图中放置点标签(如果超出图表)_C# - Fatal编程技术网

C# DataVisualization图表-在条形图中放置点标签(如果超出图表)

C# DataVisualization图表-在条形图中放置点标签(如果超出图表),c#,C#,我正在使用C#中的DataVisualization.Charting生成柱状图-我遇到的问题是,我添加的用于显示条形图值的标签显示在图表顶部(请参见下图) 0值是可以的,但在一个完美的世界中,在下面的场景中,我希望将带有数据的列上的标签(从图表顶部开始)放置在条形图中-这可能吗 我通过SmartLabelStyles系列尝试了各种设置,但未能找到有效的解决方案 以下是我如何将标签添加到图表中: chart.Series[0].Points[0].Label = Math.Round(pos1,

我正在使用C#中的DataVisualization.Charting生成柱状图-我遇到的问题是,我添加的用于显示条形图值的标签显示在图表顶部(请参见下图)

0值是可以的,但在一个完美的世界中,在下面的场景中,我希望将带有数据的列上的标签(从图表顶部开始)放置在条形图中-这可能吗

我通过SmartLabelStyles系列尝试了各种设置,但未能找到有效的解决方案

以下是我如何将标签添加到图表中:

chart.Series[0].Points[0].Label = Math.Round(pos1, 2).ToString() + "hrs " + Math.Round(((pos1 / totalHoursV) * 100), 2).ToString() + "%";

更新

我试着按照这个答案()在底部显示标签,这个答案实际上适用于条形图中的值,并在条形图中显示值,但是它会弄乱0的值,并且不能正确显示它们(参见下图)


您可以通过设置

这可以针对整个
系列
,也可以针对每个
数据点
单独进行

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;

}
系列s=chart1.系列[0];
s、 ChartType=SerieChartType.Column;
s、 IsValueShownAsLabel=true;
对于(int i=0;i<30;i++)
{
int p=s.Points.AddXY(i,rnd.Next(30));
数据点pt=s点[p];
如果(pt.yValue[0]>10)//使用合适的值!
{
pt.SetCustomProperty(“标签样式”、“底部”);
pt.LabelForeColor=颜色为白色;
}
else pt.LabelBackColor=颜色为白色;
}

条形图实际上这是柱状图。-要更改标签位置,可以使用LabelStyle=Bottom@Taw请参阅更新,我已经找到了您对前面一个问题的答案,如()但是这对0值不起作用谢谢-我确实认为在尝试您对另一个问题的答案后,这可能是可能的。我已经实现了一个粗略的版本,它已经工作了,我想我只需要在将来调整值,因为我必须手动计算是在列上方显示标签,还是在基于单个图表的最小/最大值的列中显示标签-我希望会有一个简单的内置解决方案