在Live Charts的竖图中,有没有办法让X轴的起点向右?
In the vertical chart of Live Charts, is there a way to make the starting point of the X axis to the right?
我使用 LiveCharts 绘制垂直线图。
我想要 0 在右边的 X 轴上。实现这个的方法是什么?
(现在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;
谢谢。
这里有答案。
在我的例子中是这样做的。
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);
我使用 LiveCharts 绘制垂直线图。
我想要 0 在右边的 X 轴上。实现这个的方法是什么?
(现在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;
谢谢。
这里有答案。
在我的例子中是这样做的。
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);