Chitranjan Pd Asthana Ответов: 1

Обновление контрольной диаграммы


Моя диаграмма часто обновляется, но когда диаграмма используется, используйте chart1.Series[Multiplegraph Signals[i]].Очки.RemoveAt(0);
удаление показано, но новая точка не отображается.
ChOnline - это имя элемента управления диаграммой
где Multiplegraph Signals[i] - массив строк имени серии
и максимальная ширина=100
До подсчета точек 100 график работает нормально, но после 100 он стирается с левой стороны, но текущее значение не обновляется/отображается на графике

Что я уже пробовал:

public void Update_Graph(double[] MultipleSignalsVAlue)
        {
           try
            {
                for (int i = 0; i < SignalsCntr; i++)
                {
                    DataPoint dp2 = new DataPoint(Cntr, MultipleSignalsVAlue[i]);
                    if (chart1.Series[MultipleGraphSignals[i]].Points.Count > MaximumWidth)
                        chart1.Series[MultipleGraphSignals[i]].Points.RemoveAt(0);
                    chart1.Series[MultipleGraphSignals[i]].Points.Add(dp2);               
                Cntr++;
                if (Cntr > 1000)
                    Cntr = 1;
            }
            catch(Exception ex) { }
            chart1.AlignDataPointsByAxisLabel();
        }

Gerry Schmitz

У вас есть какие-то странные расчеты, о которых никто не знает. Лучше пройдите через отладчик, потому что никто другой не может.

1 Ответов

Рейтинг:
0

OriginalGriff

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

Честно говоря, MS chart на самом деле не предназначен для отображения скользящих данных в реальном времени, вам было бы лучше использовать то, что есть. Взгляните на это: Живые Графики[^] - это бесплатно, и исходный код доступен на GitHub, если вам нужно настроить его.