Несколько данных Dataloggers в одном сюжетеC#

Место общения программистов C#
Ответить
Anonymous
 Несколько данных Dataloggers в одном сюжете

Сообщение Anonymous »

Используя Scottplot, я хочу проследить несколько данных в одном участке, используя Scottplot. DataLogger выглядит как хорошо подходит, но при добавлении нескольких данных данных, в конечном итоге, все, кроме одного «исчезают» с графика. Это происходит, когда данные для данных Dataloggers достигают левой оси y. Но было бы интересно заставить Datalogger работать так же, поскольку начальные тесты показывают, что он намного более эффективен.

Код: Выделить всё

using ScottPlot;
using ScottPlot.Plottable;
using ScottPlot.Renderable;
using Timer = System.Windows.Forms.Timer;

namespace ScottplotDatalogger
{
public partial class Form1 : Form
{
private readonly ScottPlot.Renderable.Axis YAxis3;

TimeSpan windowSpan = TimeSpan.FromSeconds(10);
Timer xAxisTimer = new Timer();
Timer UpdateCurvesTimer = new() { Interval = 1000 };
List dataLoggers = new();
Random random = new Random();

public Form1()
{
InitializeComponent();

dataLoggers.Add(ThePlot.Plot.AddDataLogger());
dataLoggers.Add(ThePlot.Plot.AddDataLogger());
dataLoggers.Add(ThePlot.Plot.AddDataLogger());
dataLoggers.Add(ThePlot.Plot.AddDataLogger());

var now = DateTime.Now.ToOADate;

xAxisTimer.Interval = 50;
xAxisTimer.Tick += XAxisUpdateTimer_Tick;
UpdateCurvesTimer.Tick += UpdateCurvesTimer_Tick;

xAxisTimer.Start();
UpdateCurvesTimer.Start();
}

private void XAxisUpdateTimer_Tick(object sender, EventArgs e)
{
ThePlot.Plot.SetAxisLimitsX(DateTime.Now, windowSpan);

ThePlot.Refresh();
}

private void UpdateCurvesTimer_Tick(object sender, EventArgs e)
{
var now = DateTime.Now;
var nowOa = now.ToOADate();
var counter = 0;
foreach (var datalogger in dataLoggers)
{
var value = Math.Sin(now.Second) * 5;
datalogger.Add(nowOa, value + counter);
counter += 1;
}
}
}

public static class PlotExtensions
{
public static void SetAxisLimitsX(this Plot plot, DateTime to, TimeSpan windowTimeSpan)
{
plot.SetAxisLimitsX(to.Add(-windowTimeSpan).ToOADate(), to.ToOADate());
}
}
}




Подробнее здесь: https://stackoverflow.com/questions/793 ... n-one-plot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»