我使用实时图表来显示来自我列表中不同数据区域的统计数据。区域的数据点数量不相同,每个点的标签也不同。
我代码:
public void MakeSeries()
{
SeriesCollection = new SeriesCollection();
var regionGroupedList = _recordList.Where(x => x.Region != 0 && x.Mmr > 0).GroupBy(g => g.Region);
foreach (var region in regionGroupedList)
{
var MmrValues = new ChartValues<int>();
List<string> DateLabels = new List<string>();
foreach (var record in region.Where(x => x.Mmr > 0))
{
MmrValues.Add(record.Mmr);
DateLabels.Add(record.Hero);
}
SeriesCollection.Add(
new LineSeries{
Title = (region.Key).ToString(),
LineSmoothness = 0, //0: straight lines, 1: really smooth lines
Values = MmrValues,
}
);
Labels = DateLabels.ToArray();
DataContext = this;
}
}
XAML:
<lvc:CartesianChart Series="{Binding SeriesCollection}" LegendLocation="Right" Margin="0,45,0,0" >
<lvc:CartesianChart.AxisY>
<lvc:Axis Title="MMR"></lvc:Axis>
</lvc:CartesianChart.AxisY>
<lvc:CartesianChart.AxisX>
<lvc:Axis Title="Game" Labels="{Binding Labels}"></lvc:Axis>
</lvc:CartesianChart.AxisX>
</lvc:CartesianChart>
工作,如果我只使用一个区域(region1),只要我有第二个区域(region2),它只显示来自region1的标签,只有两个线系列,但只有region2有多少。
我做错了什么,有可能显示每个线系列的每个单独标签吗?
我不是专家,所以我不会做一个例子,但也许我认为你应该有多个X轴,所以像这样:
- 为每个区域用轴对象填充AxesCollection
- 为每个轴对象填充你想要的标签属性
- 绑定您的axesCollection与AxisX="{Binding AxisXCollection}">