Неправильная позиция метки диаграммы Winform - PullRequest
0 голосов
/ 05 ноября 2018

enter image description here

См. Изображение. £ 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 и некоторые другие вещи.

EDIT: enter image description here

установка моей переменной "spacing" в 0, устанавливает метку в правильное положение. Как я могу иметь его в правильном положении с интервалом?

1 Ответ

0 голосов
/ 05 ноября 2018

Вы создаете новую серию для каждого значения, а это не то, что вы должны делать. Интервал работает правильно, если вы делаете одну серию для всех значений.

Быстрый пример кода (работает на графике по умолчанию):

        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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...