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}"