Я рисую вертикальную линейную диаграмму с помощью 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;

Спасибо.

0
g_uo 8 Мар 2018 в 05:37

1 ответ

Лучший ответ

Здесь был ответ.

c # Как инвертировать ось Y с помощью живых диаграмм

В моем случае это сделал.

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);
0
g_uo 20 Мар 2018 в 06:09