private async void LaunchRandomWalk(object sender, RoutedEventArgs e) { if (!int.TryParse(this.Find <TextBox>("WalkPointsTextbox").Text, out int pointCount)) { await MessageBox.Show(this, "invalid number of points", "ERROR", MessageBoxButtons.Ok); return; } double[] randomWalkData = DataGen.RandomWalk(rand, pointCount); var plt = new ScottPlot.Plot(); plt.PlotSignal(randomWalkData); plt.Title($"{pointCount} Random Walk Points"); var plotViewer = new ScottPlot.Avalonia.AvaPlotViewer(plt, 500, 300, "Random Walk Data"); plotViewer.Owner = this; // so it closes if this window closes plotViewer.Find <AvaPlot>("avaPlot1").Configure(lowQualityWhileDragging: false); // customize as desired plotViewer.Show(); // or ShowDialog() for a blocking window }
private void LaunchRandomSin(object sender, RoutedEventArgs e) { if (!int.TryParse(this.Find <TextBox>("SinCountTextbox").Text, out int sinCount)) { MessageBox.Show(this, "invalid number of sine waves", "ERROR", MessageBoxButtons.Ok); return; } var plt = new ScottPlot.Plot(); for (int i = 0; i < sinCount; i++) { double[] randomSinValues = DataGen.Sin(50, rand.NextDouble() * 10, rand.NextDouble(), rand.NextDouble(), rand.NextDouble() * 100); plt.PlotSignal(randomSinValues); } plt.Title($"{sinCount} Random Sine Waves"); var plotViewer = new ScottPlot.Avalonia.AvaPlotViewer(plt, 500, 300, "Random Sine Wave Data"); plotViewer.Owner = this; // so it closes if this window closes plotViewer.Find <AvaPlot>("avaPlot1").Configure(lowQualityWhileDragging: false); // customize as desired plotViewer.Show(); // or ShowDialog() for a blocking window }