我使用LiveCharts绘制垂直折线图 我希望X轴在右边0。实现这个目标的方法是什么? (现在0在左边,最大值在右边)
我不是很擅长英语,所以请看下图。
/*
Y:Index, X:Value
@Now
300|
|
|
|
|
0|--------->
0 65535
@ I want this!!
300|
|
|
|
|
0|--------->
65535 0
*/
XAML
<lvc:CartesianChart Name="VChart" Background="#222" DisableAnimations="True" Hoverable="False" DataTooltip="{x:Null}" UpdaterState="{Binding ChartUpdaterState}" UseLayoutRounding="True">
<lvc:CartesianChart.Series>
<lvc:VerticalLineSeries Values="{Binding VerticalLineChartValues}" StrokeThickness="1" Configuration="{Binding VerticalLineChartConfig}"
Stroke="Khaki" Fill="Transparent" LineSmoothness="0" PointGeometry="{x:Null}" />
</lvc:CartesianChart.Series>
<lvc:CartesianChart.AxisX>
<lvc:Axis IsMerged="True">
<lvc:Axis.Separator>
<lvc:Separator StrokeThickness="1" StrokeDashArray="2">
<lvc:Separator.Stroke>
<SolidColorBrush Color="#404F56" />
</lvc:Separator.Stroke>
</lvc:Separator>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<lvc:CartesianChart.AxisY>
<lvc:Axis IsMerged="True" Position="LeftBottom">
<lvc:Axis.Separator>
<lvc:Separator StrokeThickness="1" StrokeDashArray="4">
<lvc:Separator.Stroke>
<SolidColorBrush Color="#404F56" />
</lvc:Separator.Stroke>
</lvc:Separator>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
ViewModel.cs
// Create config
var vChartConfig = new CartesianMapper<int>();
vChartConfig.X((value, index) => value);
vChartConfig.Y((value, index) => index);
VerticalLineChartConfig = vChartConfig;
谢谢。
答案 0 :(得分:0)
这里有一个答案。
c# How to invert Y Axis with Live Charts
在我的情况下这样做了。
VChart.AxisX[0].LabelFormatter = x => (x * -1).ToString(CultureInfo.InvariantCulture);
// Flip values
for (var i = 0; i < values.Count; i++)
values[i] = values[i] * -1;
VerticalLineChartValues.AddRange(values);