Как изменить угол обзора и значение метки диаграммы .NET C#

Краткое описание

Я использую диаграммы для конкретного приложения, где мне нужно изменить угол обзора отображаемой 3D-круговой диаграммы и значение автоматических меток с имен меток круговой диаграммы на соответствующие значения круговой диаграммы.

Вот как выглядит диаграмма: Круговая диаграмма


Инициализация

Вот как я его инициализирую:

    Dictionary<string, decimal> secondPersonsWithValues = HistoryModel.getSecondPersonWithValues();
    decimal[] yValues = new decimal[secondPersonsWithValues.Values.Count]; //VALUES
    string[] xValues = new string[secondPersonsWithValues.Keys.Count]; //LABELS
    secondPersonsWithValues.Keys.CopyTo(xValues, 0);
    secondPersonsWithValues.Values.CopyTo(yValues, 0);
    incomeExpenseChart.Series["Default"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie;
    incomeExpenseChart.Series["Default"].Points.DataBindXY(xValues, yValues);
    incomeExpenseChart.ChartAreas["Default"].Area3DStyle.Enable3D = true;
    incomeExpenseChart.Series["Default"].CustomProperties = "PieLabelStyle=Outside";
    incomeExpenseChart.Legends["Default"].Enabled = true;
    incomeExpenseChart.ChartAreas["Default"].Area3DStyle.LightStyle = System.Windows.Forms.DataVisualization.Charting.LightStyle.Realistic;
    incomeExpenseChart.Series["Default"]["PieDrawingStyle"] = "SoftEdge";

В основном я запрашиваю данные из базы данных, используя HistoryModel.getSecondPersonWithValues();, чтобы получить пары как Dictionary<string, decimal>, где ключ — это человек, а значениеколичество. эм>.


Проблема №1

Что мне нужно, так это иметь возможность изменить отмеченные метки с имена людей на суммы или добавить другую метку сумм с теми же цветами (см. изображение). введите здесь описание изображения


Проблема №2

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

Заранее спасибо Джордж.


person George    schedule 22.02.2011    source источник


Ответы (2)


Решение проблемы №1

Помогло добавление новой метки и заполнение пользовательскими значениями. Кроме того, я изменил Series.IsValueShownAsLabel = true;


Решение проблемы № 2

Я должен был установить ChartArea.Area3DStyle.IsClustered = true;, а затем установить ChartArea.Area3DStyle.Inclination;

person George    schedule 24.02.2011
comment
Красиво... довольно мило... Я искал недвижимость Ìnclination. Выполнение chart.ChartAreas["ChartArea1"].Area3DStyle.Inclination = 50; делает круговую диаграмму намного лучше! Спасибо, что поделились своими выводами! :) - person Leniel Maccaferri; 09.07.2013

Используйте xlhart.Rotation и xlchart.Elevation.

person Community    schedule 01.06.2012