LiveCharts CartesianChart 仅显示每个系列的单个值

LiveCharts CartesianChart only showing a single value from each series

我有一个非常简单的图表:X 轴是一系列日期时间(30 分钟间隔),Y 轴只是一个双精度数。有两个系列:MainSeriesCheckSeries

无论我做什么,图表都只会显示一个值:

这就是我构建图表的方式:

Dim MainSeries As New GColumnSeries With {
        .Title = "Main",
        .ColumnPadding = 1,
        .Fill = New SolidColorBrush(Color.FromArgb(blue.A, blue.R, blue.G, blue.B)),
        .Values = New GearedValues(Of Double)(MainValues)
    }

    Dim CheckSeries As New GColumnSeries With {
        .Title = "Check",
        .ColumnPadding = 1,
        .Fill = New SolidColorBrush(Color.FromArgb(grey.A, grey.R, grey.G, grey.B)),
        .Values = New GearedValues(Of Double)(CheckValues)
    }

    chtMain.Series = New SeriesCollection From {
        MainSeries,
        CheckSeries
    }

    chtMain.AxisX.Add(New Axis With {
        .Title = "DateTime",
        .Labels = LogDates,
        .Unit = 1,
        .MinRange = 48,
        .MaxRange = 340
    })

    'Tried adding this to AxisX but doesn't make any difference
    '.LabelFormatter = Function(value) New DateTime(CLng(value * TimeSpan.FromMinutes(30).Ticks)).ToString("t"),

    chtMain.AxisY.Add(New Axis With {
        .Title = "Consumption",
        .LabelFormatter = Function(value) value.ToString("N"),
        .MinValue = 0,
        .MaxValue = yAxisMax + 10
    })

在我的测试示例中,每个系列都有 289 个值。您还可以注意到,Y 轴最大值已针对不可见的其他数据进行了适当设置。否则我希望最大值在 50 左右。

我已经在 X 轴上尝试了 UnitMinRangeMaxRange 的所有组合,并且它们的 none 没有任何区别。

有什么想法吗?

我最终找到了正确的属性组合。

AxisX.LabelFormatter 需要是一个以半小时为增量转换为 DateTime 的函数,但我还必须 MinValueMaxValue 没有 MinRangeMaxRangeRange 属性似乎覆盖了 Value 属性。

所以我的 X 轴现在看起来像这样:

chtMain.AxisX.Add(New Axis With {
            .Title = "DateTime",
            .Labels = LogDates,
            .LabelFormatter = Function(value) New DateTime(CLng(value)).ToString("dd/MM/yy HH:mm"),
            .MinValue = 0,
            .MaxValue = 48
        })