user8144524
user8144524

Reputation:

LiveCharts: how to plot skewed data (i.e exponential y-axis) in column series wpf

How to set the Y-axis interval exponentially in column series?

new ColumnSeries
{
     Fill = new SolidColorBrush(Color.FromRgb(30,130,173)),
     Width = 100,
     MaxColumnWidth = 100,
     Values = new ChartValues<double> {500,30,10},
     DataLabels = true,
     LabelPoint  = point => point.Y +"",
     FontSize = 20
}

Upvotes: 1

Views: 752

Answers (1)

AlBal
AlBal

Reputation: 146

You can configure your y-axis with a logarithmic scale - there's an explanation of how to do this on the Live Charts site https://lvcharts.net/App/examples/v1/wpf/Logarithmic%20Scale

Here's an example adapted for a column series:

public SeriesCollection SeriesCollection { get; set; }

public MainWindow()
{
    InitializeComponent();

    var mapper = Mappers.Xy<double>()
                    .X((value, index) => index)
                    .Y((value, index) => Math.Log(value, 10));

    SeriesCollection = new SeriesCollection(mapper)
    {
        new ColumnSeries
        {
            Values = new ChartValues<double>{500,30,10}
        }
    };

    DataContext = this;
}

and the XAML:

<Grid>
    <lvc:CartesianChart Series="{Binding SeriesCollection}">
        <lvc:CartesianChart.AxisY>
            <lvc:LogarithmicAxis Base="10" />
        </lvc:CartesianChart.AxisY>
    </lvc:CartesianChart>
</Grid>

Column series with log scale

Upvotes: 1

Related Questions