ScottPlot.NET
How to create an interactive plot in a C# Avalonia application

Step 1: Install the ScottPlot.Avalonia NuGet package. Linux & MacOS users must take these additional steps.

Step 2: Import the ScottPlot.Avalonia namespace by adding this to your Window element:

xmlns:ScottPlot="clr-namespace:ScottPlot.Avalonia;assembly=ScottPlot.Avalonia"

Your Window element should look something like this:

<Window xmlns="https://github.com/avaloniaui"
        <!-- More attributes -->
        x:Class="ScottPlot.Demo.Avalonia.MainWindow"
        xmlns:ScottPlot="clr-namespace:ScottPlot.Avalonia;assembly=ScottPlot.Avalonia"
        Title="Avalonia Quickstart" Width="500" Height="350">

Step 3: Add an AvaPlot to your layout and give it a unique name

<ScottPlot:AvaPlot Name="AvaPlot1"/>

Step 4: Plot some data in your start-up sequence

double[] dataX = new double[] { 1, 2, 3, 4, 5 };
double[] dataY = new double[] { 1, 4, 9, 16, 25 };

AvaPlot avaPlot1 = this.Find<AvaPlot>("AvaPlot1");
avaPlot1.Plot.AddScatter(dataX, dataY);
avaPlot1.Refresh();

⚠️ WARNING: ScottPlot 5 has not yet been released. ScottPlot 5 preview packages are available on NuGet for experimentation. ScottPlot 5 is being actively developed, but it is not yet feature complete, fully documented, supported, or recommended for production use at this time. See the ScottPlot versions page for more information.
double[] dataX = { 1, 2, 3, 4, 5 };
double[] dataY = { 1, 4, 9, 16, 25 };

AvaPlot avaPlot1 = this.Find<AvaPlot>("AvaPlot1");
avaPlot1.Plot.Add.Scatter(dataX, dataY);
avaPlot1.Refresh();