C # wpf Живые графики, как автоадаптировать оси с точки зрения значений и меток с кодом позади - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть проект, который должен быть разработан в WPF, а код - только с живыми диаграммами.Идея состоит в том, чтобы иметь график температуры.Ниже вы можете увидеть, что я уже делал, добавив значения в lineSerie.Я начинаю с добавления значений в строку serie и, когда их больше 120, я удаляю первое:

lineSerie1_Part.Values.Add(new ObservableValue((double)val));
if (lineSerie1_Part.Values.Count >= 120)
        lineSerie1_Part.Values.RemoveAt(0);

enter image description here

Теперь у меня две проблемы:


  1. Я бы хотел, чтобы на оси X не было числа добавленных значений, а было бы время, когда температура была измерена (например, 10:03:24 - 10:04: 18 - ...).Поэтому я написал небольшую тестовую программу, в которой я установил метки:

    Labels = new[] { "AAA", "BBB", "CCC"};
    cc.AxisX[0].Labels = Labels;
    

, и это работает.Тем не менее, я не могу изменить это:

Labels[0] = "DDD";
Labels[1] = "EEE";
Labels[2] = "FFF";      
cc.AxisX[0].Labels = Labels;

не вносит никаких изменений. Кроме того, это правильный способ сделать это?Был бы способ, которым, когда я добавляю новое значение, у того значения уже есть в нем его метка оси x?


Я могу установить максимальную и минимальную температуру в начале (например, 18 ° -25 °),

chartTemperatures.AxisY.Add(new Axis { MinValue = MinTemp, MaxValue = MaxTemp);

, но я бы хотел, чтобы графика автоматически расширяласьесли температура превышает начальные значения (например, 25,5 °).

Спасибо за любую помощь, Патрик

1 Ответ

0 голосов
/ 08 мая 2019

Как утверждает Jdweng, не существует автоматического метода.Поэтому я должен использовать cc.AxisX [0] .Label [0] = "DDD"; cc.AxisX [0] .Label [1] = "EEE"; cc.AxisX [0] .Label [2] = "FFF "

...