如何解决LiveCharts WPF 标签
我使用实时图表来显示我列表中不同区域数据的统计数据。 区域的数据点数量不同,每个点的标签也不同。
我的代码:
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" >
<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>
如果我在有第二个区域 (region2) 时只使用一个区域 (region1),它只显示来自 region1 的标签在两个 lineeries 上的标签,但只显示 region2 的标签。
解决方法
我不是专家,所以我不会举个例子,但也许我认为你应该有多个 X 轴,所以像这样:
- 使用每个区域的轴对象填充 AxesCollection
- 对于每个轴对象,用您想要的内容填充 Labels 属性。
- 将您的 axesCollection 与 AxisX="{Binding AxisXCollection}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。