Изменение отображения chart doughnut

108
26 ноября 2019, 20:40

Как можно изменить chart doughnut ,чтобы он выглядел как на этой картинке? По умолчанию он выглядит как полный круг, на картинке же только половина круга

Answer 1

Не нашел у MSChart такой настройки. Можно схитрить: добавить значение, так чтобы оно занимало нижний полукруг, затем присвоить ему прозрачный цвет.

Чтобы значение занимало нижний полукруг оно должно идти первым по порядку и быть равно сумме остальных значений:

//значения
int[] values = { 2, 3, 4, 5, 6 };
//график
var series = new Series() { ChartArea = "ChartArea1", ChartType = SeriesChartType.Doughnut };
//считаем сумму
int sum = values.Sum();
//задаем первое значение с прозрачным цветом
var firstPoint = new DataPoint(0, sum) { Color = Color.Transparent };
series.Points.Add(firstPoint);
//добавляем остальные значения
foreach (var item in values)
{
    series.Points.Add(new DataPoint(0, item));
}
chart1.Series.Add(series);

Получится что-то вроде:

Если скрыть легенду и поиграться с расположением можно добиться нужного отображения.

READ ALSO
Как отловить нажатие TAB в WinForms?

Как отловить нажатие TAB в WinForms?

Как можно сделать в C# WinForms так, чтобы при фокусе на TextBox и нажатии TAB вставлялась табуляция?

115
Как решить эту ошибку в Unity? error CS0266

Как решить эту ошибку в Unity? error CS0266

error CS0266: Cannot implicitly convert type INGUIAtlas' toUIAtlas'An explicit conversion exists (are you missing a cast?)

134
DataGrid закрасить ячейку

DataGrid закрасить ячейку

Можно ли в WPF с помощью DataGridRowEventArgs закрасить определеную ячейку?

123