C# 如何使用Livecharts使x轴从0开始并有2秒的步长,而不是从程序启动的第二秒开始?
我正在使用 代码隐藏 xamlC# 如何使用Livecharts使x轴从0开始并有2秒的步长,而不是从程序启动的第二秒开始?,c#,livecharts,C#,Livecharts,我正在使用 代码隐藏 xaml 但如何更改代码,使I图显示x轴标签从0开始,然后转到0,1,2,…100,…300等。?而不是在第二个程序启动时启动 我想完成以下任务: 也许我可以使用oxyplot之类的其他库,有什么建议吗?我认为最直接的方法是保存第一个数据点DateTime值。然后,您可以计算每个其他数据点的相对时间。使用这些相对值,您可以“使”图表从0开始 要将数据移出图表,如果时间继续,则应将相对时间值输入SetAxisLimits(TimeSpan)函数。数据类型必须更改为T
但如何更改代码,使I图显示x轴标签
从0开始,然后转到0,1,2,…100,…300
等。?而不是在第二个程序启动时启动
我想完成以下任务:
也许我可以使用oxyplot之类的其他库,有什么建议吗?我认为最直接的方法是保存第一个数据点DateTime
值。然后,您可以计算每个其他数据点的相对时间。使用这些相对值,您可以“使”图表从0开始
要将数据移出图表,如果时间继续,则应将相对时间值输入SetAxisLimits(TimeSpan)
函数。数据类型必须更改为TimeSpan
大概是这样的:
var now = DateTime.Now;
if(ChartValues.Count == 0)
start = now; // save first timestamp to reference the following datapoints
var time = now.Subtract(start)
ChartValues.Add(new MeasureModel
{
Time = time,
Value = SomeFunction()
});
SetAxisLimits(time);
var now = DateTime.Now;
ChartValues.Add(new MeasureModel
{
DateTime = now,
Value = SomeFunction()
});
SetAxisLimits(now);
<wpf:CartesianChart Grid.Row="0"
AnimationsSpeed="0:0:0.9"
Hoverable="False"
DataTooltip="{x:Null}">
<wpf:CartesianChart.Series>
<wpf:LineSeries
Name="MyChart" Values="{Binding ChartValues}"
PointGeometry="{x:Null}"
LineSmoothness="2"
StrokeThickness="3"
Stroke="#F34336"
Fill="Transparent"/>
</wpf:CartesianChart.Series>
<wpf:CartesianChart.AxisX>
<wpf:Axis LabelFormatter="{Binding DateTimeFormatter}"
MaxValue="{Binding AxisMax}"
MinValue="{Binding AxisMin}"
Unit="{Binding AxisUnit}">
<wpf:Axis.Separator>
<wpf:Separator Step="{Binding AxisStep}" />
</wpf:Axis.Separator>
</wpf:Axis>
</wpf:CartesianChart.AxisX>
<wpf:CartesianChart.AxisY>
<wpf:Axis MinValue="-20"
MaxValue="20">
</wpf:Axis>
</wpf:CartesianChart.AxisY>
</wpf:CartesianChart>
var now = DateTime.Now;
if(ChartValues.Count == 0)
start = now; // save first timestamp to reference the following datapoints
var time = now.Subtract(start)
ChartValues.Add(new MeasureModel
{
Time = time,
Value = SomeFunction()
});
SetAxisLimits(time);