使用Live Charts功能对比多条折线时当Label不是一一对应时会发现折线无法对比如
Labels =
List<double> list2 = new List<double>();
list2.Add(2.1); //x为0.5时
list2.Add(2.2); //x为0.6时
list2.Add(2.3); //x为0.7时
list2.Add(2.4); //x为0.8时
list2.Add(2.5); //x为0.9时
list2.Add(2.6); //x为10.0时
list2.Add(2.7); //x为10.1时
List<double> list3 = new List<double>();
list3.Add(3.1); //x为0.55时
list3.Add(3.3); //x为0.65时
list3.Add(3.4); //x为0.75时
list3.Add(7.7); //x为0.95时
SeriesList.Add(new LineSeries()
{
Title = kv.Key,
LineSmoothness = 0,
PointGeometry = DefaultGeometries.Circle,
Values = new ChartValues<double>(list1.Select(x => Double.Parse(x.ToString())).ToList()),
Fill = new SolidColorBrush(Colors.Transparent),
});
SeriesList.Add(new LineSeries()
{
Title = kv.Key,
LineSmoothness = 0,
PointGeometry = DefaultGeometries.Circle,
Values = new ChartValues<double>(list2.Select(x => Double.Parse(x.ToString())).ToList()),
Fill = new SolidColorBrush(Colors.Transparent),
});
发现折线图全是断断续续的
如果想要解决以上问题就需要修改ChartValues类型,由原来的double修改成ObservablePoint
List<LiveCharts.Defaults.ObservablePoint> chartPoint2 = new List<LiveCharts.Defaults.ObservablePoint>();
for (int i = 0; i < 100; i++)
{
if (i % 5 == 0)
{
continue;
}
chartPoint2.Add(new LiveCharts.Defaults.ObservablePoint() { X = i + 1.1, Y = i + 10.1 });
}
List<LiveCharts.Defaults.ObservablePoint> chartPoint3 = new List<LiveCharts.Defaults.ObservablePoint>();
for (int i = 0; i < 100; i++)
{
chartPoint3.Add(new LiveCharts.Defaults.ObservablePoint() { X = i + 1.1, Y = i + 20.1 });
}
SeriesList.Add(new LineSeries()
{
Title = kv.Key,
LineSmoothness = 0,
PointGeometry = DefaultGeometries.Circle,
Values = new ChartValues<LiveCharts.Defaults.ObservablePoint>(chartPoint2),
Fill = new SolidColorBrush(Colors.Transparent),
}); ;
SeriesList.Add(new LineSeries()
{
Title = kv.Key,
LineSmoothness = 0,
PointGeometry = DefaultGeometries.Circle,
Values = new ChartValues<LiveCharts.Defaults.ObservablePoint>(chartPoint3),
Fill = new SolidColorBrush(Colors.Transparent),
});
即可解决上述问题