可以按字母顺序在Oxyplot图表图例中订购系列吗?

时间:2016-05-13 13:03:49

标签: wpf charts legend series oxyplot

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

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

我想订购legend的{​​{1}}。我不会先订购我首先绘制数据的方式,因为它意味着太多的条件,我希望尽可能保持绘图。我知道这是一个选择,但我宁愿不采用这种方法。

如果chart中只有order alphabetically图例商品可以告诉我吗?

1 个答案:

答案 0 :(得分:2)

您无法直接修改de legend的顺序,但您可以对模型内的系列进行排序,因此您会看到图例按字母顺序排序

您有2种方法可以进行排序:

选项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);