我想在legend
中订购我的Oxyplot图表的alphabetical order
。这可能在Oxyplot
内吗?
这是我目前的情节:Plot with legend
我想订购legend
的{{1}}。我不会先订购我首先绘制数据的方式,因为它意味着太多的条件,我希望尽可能保持绘图。我知道这是一个选择,但我宁愿不采用这种方法。
如果chart
中只有order alphabetically
图例商品可以告诉我吗?
答案 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);