如何更改图例中的系列顺序?
My Line系列出现在StackedColumn系列之前,但出现在我的专栏系列之后。
Chart c = new Chart();
ChartArea ca = c.ChartAreas.Add("main");
Legend lg = c.Legends.Add("mainLegend");
Series s1 = c.Series.Add("s1");
s1.ChartType = ChartType.StackedColumn;
Series s2 = c.Series.Add("s2");
s2.ChartType = ChartType.Column;
Series s3 = c.Series.Add("s3");
s3.ChartType = ChartType.Line;
原谅可怜的ASCII艺术,但传说看起来像:
....... [黄色] s2 ....... [红色] s3 ...... [蓝色] s1 ............
当我希望它按顺序排列时:s1,s2,s3。
有什么想法吗?
答案 0 :(得分:2)
这确实很奇怪。对我而言,图例中系列的顺序似乎应与添加它们的顺序相同,或者如果将LegendItemOrder
实例的Legend
属性设置为{{1}以相反的顺序。
答案 1 :(得分:2)
要扩展Emil的答案,LegendItemOrder
的MSDN信息说:
如果LegendItemOrder属性设置为Auto,则使用StackedColumn,StackedColumn100,StackedArea或StackedArea100图表类型时,图例将自动反转。
我不确定,但我的猜测是它正在“分组”s2和s3,并反过来显示它们,因为s1是StackedColumn图表 - s1, (s2, s3)
变为(s2, s3), s1
。 (我不知道幕后究竟发生了什么)
正如Emil所说,将LegendItemOrder
属性设置为LegendItemOrder.SameAsSeriesOrder
或LegendItemOrder.ReversedSeriesOrder
会强制图例按特定顺序显示。
以下是MSDN的链接,其中包含更多信息: http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.legend.legenditemorder.aspx
答案 2 :(得分:0)
MSChart1.ShowLegend = True
With MSChart1
.Column = 1
.Row = 1
.ColumnLabel = "Series 1"
.Data = 100
.Column = 2
.Row = 1
.ColumnLabel = "Series 2"
.Data = 100
End With