【问题标题】:Winform chart label wrong positionWinform图表标签位置错误
【发布时间】:2018-11-05 14:30:08
【问题描述】:

见图片。 £12,845.63 是第一列标签。我试过在一个空白的、新鲜的图表上运行下面的代码,所有默认设置(白色背景也是)它做同样的事情。

我正在填充这样的图表:

        private void InitializeData()
    {
        chart1.Series.Clear();
        double i = 0;
        double spacing = 0.1;
        foreach (DataRow rows in DailyBarChartT.Rows)
        {
            Series series = chart1.Series.Add(rows[0].ToString());
            series.Points.AddXY(i, rows[1]);
            series.IsValueShownAsLabel = true;
            series.LabelFormat = "C";
            series.LabelForeColor = Color.White;

            i = i + spacing;
        }
        chart1.Update();
    }

我猜这个数字不适合蓝条上方?我该如何解决这个问题? 我已经尝试将标签边距设置为 0 和其他一些东西。

编辑:

将我的“间距”变量设置为 0,将标签设置为正确的位置。 我怎样才能把它放在正确的位置和间距?

【问题讨论】:

    标签: forms winforms charts label bar-chart


    【解决方案1】:

    您为每个值创建一个新系列,这不是您应该这样做的方式。如果您为所有值制作一个系列,则间距可以正常工作。

    快速示例代码(适用于默认图表):

            string[] values =
            {
                "12845.63", "1174.89",
                "344.04", "180.83",
                "82.50", "55.00" 
            };
    
            chart1.ChartAreas[0].BackColor = Color.Black;
            chart1.Series.Clear();
            Series series = new Series();
            series.IsValueShownAsLabel = true;
            series.LabelFormat = "C";
            series.LabelForeColor = Color.White;
    
            foreach (var value in values)
            {
                var pointIndex = series.Points.AddY(value);
                series.Points[pointIndex].AxisLabel = "Custom label for each value here";
            }
    
            chart1.Series.Add(series);
    

    【讨论】:

    • 我的传奇包含人名。我不认为我可以用 1 个系列做到这一点。
    • 有一个属性,即“AxisLabel”,我已经更新了我的答案。 @埃德加拉斯
    • 这解决了这个问题,但是,我失去了右上角的“图例”和着色,所有的条都是相同的颜色。从一个问题到另一个问题。
    猜你喜欢
    • 1970-01-01
    • 2022-08-24
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多