可以按字母顺序排列 Oxyplot 图表图例中的系列吗?

It is possible to order alphabetically the series in Oxyplot chart legend?

我想在 alphabetical order 中订购我的 Oxyplot 图表的 legend。在 Oxyplot 内可能吗?

这是我目前的情节:Plot with legend

我想订购 chartlegend。我不会先排序我绘制数据的方式,因为这意味着太多的条件,我想尽可能地保持绘图的一般性。我知道这是一种选择,但我不想采用这种方法。

请告诉我是否可以 order alphabeticallyOxyplot 中的图例项目?

您不能直接修改图例的顺序,但您可以对模型内部的系列进行排序,因此您会看到图例按字母顺序排序:

你有两种排序方法:

选项 1,简单冒泡排序:

Series temp;
int length = plotModel.Series.Count;
for (i = 0; i < length; i++)
{
    for (int j = i + 1; j < length; j++)
    {
        if (string.Compare(plotModel.Series[i].Title, plotModel.Series[j].Title) > 0) //true if second string goes before first string in alphabetical order
        {
            temp = plotModel.Series[i];
            plotModel.Series[i] = plotModel.Series[j];
            plotModel.Series[j] = temp;
        }
    }
}

选项2,辅助列表:

List<Series> sortedList = new List<Series>(plotModel.Series);
sortedList.Sort((x, y) => string.Compare(x.Title, y.Title));

plotModel.Series.Clear();
foreach(Series s in sortedList)
    plotModel.Series.Add(s);