OxyPlot создать легенду для каждого фрагмента Piechart

Рейтинг: 0Ответов: 1Опубликовано: 16.03.2023

Использую oxyplot.core, мне нужно, чтобы для каждого кусочка(series) Piechart указывалось название в легенде.

Пока я смог создать легенду только для каждого Piechart в целом

Ответы

▲ 0
var seriesCollection = new SeriesCollection();

var segment1 = new PieSegment { Value = 30 };
var series1 = new PieSeries { Title = "Segment 1", StrokeThickness = 2, InsideLabelPosition = 0.8, AngleSpan = 30 };
series1.Slices.Add(segment1);
seriesCollection.Add(series1);

var segment2 = new PieSegment { Value = 20 };
var series2 = new PieSeries { Title = "Segment 2", StrokeThickness = 2, InsideLabelPosition = 0.8, AngleSpan = 20 };
series2.Slices.Add(segment2);
seriesCollection.Add(series2);

var segment3 = new PieSegment { Value = 50 };
var series3 = new PieSeries { Title = "Segment 3", StrokeThickness = 2, InsideLabelPosition = 0.8, AngleSpan = 50 };
series3.Slices.Add(segment3);
seriesCollection.Add(series3);


plotModel.Series = seriesCollection;

foreach (var series in seriesCollection)
{
    foreach (var slice in series.Slices)
    {
        series.LegendItems.Add(new LegendItem { Title = slice.Title, Fill = slice.Fill });
    }
}

var chart = new PlotView
{
    Model = plotModel,
    Dock = DockStyle.Fill
};```