Displaying data real-time on a chart in Windows Forms C#. Отображение данных, реальное время, график

Поделиться
HTML-код
  • Опубликовано: 5 ноя 2024

Комментарии • 47

  • @forsytee
    @forsytee  3 года назад +6

    За полдня уже 7 лайков и 50 просмотров. Мне нереально приятно, что еще меня помнят)) Спасибо всем большое! Я по шарпу записываю видео только, когда подобного нет в Интернете, поэтому ролики выходят редко, но зато очень полезные и всегда набирают тысячи просмотров. Думаю этот ролик будет полезен многим!

  • @IvanIvanov-ig1zx
    @IvanIvanov-ig1zx Год назад +2

    Очень полезное видео.
    Короткое, сжатое и все понятно.
    Тъй настоящий учитель.
    Спасибо.

    • @forsytee
      @forsytee  11 месяцев назад

      Спасибо большое, очень приятный комментарий! Удачи!

  • @milanmiljkovic8169
    @milanmiljkovic8169 2 года назад +2

    Очень полезное видео.Я новичок в использовании C# и все было понятно и подробно объяснено.Спасибо большое.

    • @forsytee
      @forsytee  2 года назад

      Большое спасибо, удачи!

  • @trieutraninh2641
    @trieutraninh2641 Год назад +1

    very good and useful...thanks ad!!!

  • @artemzharkov620
    @artemzharkov620 2 года назад +1

    Мужик, ты просто лучший ! Спасибо огромное!

    • @forsytee
      @forsytee  2 года назад

      Большое спасибо! Удачи вам

  • @KDuubi
    @KDuubi Год назад +1

    Pzdc kakoe haroshoje video!! SPASIBO AGROMNIJE!

    • @forsytee
      @forsytee  Год назад

      Спасибо за комментарий, удачи

  • @nikitapavlik4330
    @nikitapavlik4330 Год назад +2

    Спасибо тебе огромное!!!!!!!!!!!!!!!!!!!!!!!

    • @forsytee
      @forsytee  Год назад +1

      Спасибо за комментарий) удачи

  • @FBI0777
    @FBI0777 2 года назад +2

    Очень полезный ролик. Я пересмотрю его еще раз пять )) Я инженер и мне приспичило создать приложение на винду, чтобы она считывала через усб порт, о ардуино два параметра от датчиков подключенных к ардуино. Если работать с ардуино я умею, то остальное - темный лес. Нужно чтобы приложение не только отображало график в реальном времени, но и могло сохранять данные в эксел, желательно автоматически при обновлении графика. Предстоит еще разобраться, как считыват данные с ардуино. Но самое главное, я завис на начальной стадии с функциями Chart и Timer (( Пожалуйста подскажите если кто знает.

    • @FBI0777
      @FBI0777 2 года назад

      Я поступил следующим образом: установил visual studio 2017 professional - все заработало. По-другому никак не получалось.

  • @Артем-у1ы6с
    @Артем-у1ы6с 2 года назад +1

    Спасибо! Очень полезный ролик!!! К примеру можно сварганить почасовой тренд на сутки. Я сделал массив на 24 элемента, по таймеру каждый час сдвигаю массив и записываю новое значение, и вывожу на график:
    for (byte i = 0; i < 24; i++) {chart.Series[0].Points.AddXY(i, Mas[i]); }
    Получается что график сдвигается.

    • @forsytee
      @forsytee  2 года назад

      Спасибо вам за комментарий и реализацию. Удачи вам!

  • @egorow4innikow565
    @egorow4innikow565 2 года назад +1

    Огромное спасибо, помогло построить график с распределением температур. Не получалось из-за высокого роста. Как итог программа крашилась

    • @forsytee
      @forsytee  2 года назад +1

      Ну заранее надо знать минимум и максимум по шкале температуры, и сразу задавать эти пределы, можно с запасом +-10, спасибо вам за фидбэк.

  • @NIKITA-jy5pv
    @NIKITA-jy5pv 3 года назад +1

    Добрый вечер! Спасибо за столь интересный ролик!
    Не могли вы бы приложить исходники, на гитхаб или в комментариях?

    • @forsytee
      @forsytee  3 года назад

      Ух ты как быстро первый комментарий). Я бы могу кинуть код с радостью в комменты, но сразу удалил проект после видео(. Извините конечно за такие мувы. Не подумал. но тут код в принципе на 15 строк, думаю можно переписать руками. Впредь буду сохранять проекты.

    • @NIKITA-jy5pv
      @NIKITA-jy5pv 3 года назад +1

      @@forsytee Окей, спасибо Вам, что учите всех нас))

    • @forsytee
      @forsytee  3 года назад +1

      @@NIKITA-jy5pv Спасибо вам что продолжаете смотреть

  • @josemarcos6441
    @josemarcos6441 2 года назад +1

    Hello! Great vídeo. Thank you. Can you male the code available?

  • @ivi6004
    @ivi6004 2 года назад +1

    У меня Visual Studio 2019, элемент Chart, ни в панели элементов, ни в поиске я не нашел, что делать? Как повторить Ваш урок? Может в Visual Studio 2019 нужно использовать другой элемент вместо Chart? Или нужно пополнить библиотеку элементов из вне? Или у меня не полная версия Visual Studio 2019 (я использую Community).

    • @forsytee
      @forsytee  2 года назад

      Ну у меня интерпрайз студия, но это никак не должно влиять на наличие чарта. charts доступен как часть .net 4.5 - это я нагуглил, видимо графики зависят не от вижака а от дотнета, а если вижак новый то и дотнет наверное новые и больше 5, на видео дот нет 4.6.1 вроде, ну что-то около 4.5 версии

    • @ivi6004
      @ivi6004 2 года назад +1

      @@forsyteeБольшое спасибо за подсказку. Я создавал проекты на платформе net 3.5, а там действительно нет Chart-а. Переключился на net 4.8 и все нашлось, причём именно так как в Вашем ролике - через поиск ибо в выпадающем списке элементов, изначально Chart нет. Еще раз большое спасибо. Желаю дальнейших успехов на ниве просвещения. Лично мне было бы интересно построение графиков в декартовых и полярных координатах по данным поступающим из СОМ-порта с возможностью вывода графиков на печать и сохранением результатов файлом на HDD в текстовом или экселевском форматах.

    • @FBI0777
      @FBI0777 2 года назад

      @@ivi6004 Я попобовал переключиться на 4.8 не помогло, даже через поиск не находит. У меня во вкладке ВИД вообще нет панели элементов, там панель инструментов, с выпадающим списком, вобщем вообще не так работает. Никак не могу найти Chart. Может кто-нибудь подскажет как добавить график в 2022 версии визуал студио?

    • @FBI0777
      @FBI0777 2 года назад

      @@ivi6004 То же самое и с Timer

    • @ivi6004
      @ivi6004 2 года назад

      @@FBI0777 Подробно могу ответить в личку

  • @BoddenDeni
    @BoddenDeni Год назад +1

    то что надо.

  • @asapcoder45
    @asapcoder45 Год назад +1

    Какая то вакханалия происходит с графиками. С вами можно как то связаться, чтобы вы помогли?

    • @forsytee
      @forsytee  Год назад

      Ну вы тут уже связались) не обещаю помочь)

    • @asapcoder45
      @asapcoder45 Год назад

      @@forsytee мне бы код показать)

  • @SaNtAClOuSe5246
    @SaNtAClOuSe5246 2 года назад +1

    нужна помощь, как в реал тайме рисовать свечные графики по сокетам? что б можно было допустим 5минутный таймфрейм включить и смотреть чарт акции или крипты

  • @ДжазБлюзович
    @ДжазБлюзович 3 года назад +2

    А как можно сделать чтоб график не обновлялся полностью , а постепенно перемещался вслед за новыми показаниями?

    • @forsytee
      @forsytee  3 года назад

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

    • @asutpkza2043
      @asutpkza2043 Год назад

      Можно так сделать, обновление каждые 5 сек. :
      Условие проверки времени вставить в timer1_Tick , как у автора ролика
      ░S░a░m░p░l░e░ ░C░o░d░e░
      private int cCount;
      private void timer1_Tick(object sender, EventArgs e)
      {
      chart1.Series[0].Points.AddXY(DateTime.Now, DateTime.Now.Second);
      //int tVal = Math.Abs( cCount - Convert.ToInt32(DateTime.Now.Second));
      if (cCount != Convert.ToInt32(DateTime.Now.Second))
      { //' Math.Abs(cCount - Now.Minute) >= 5
      if (Convert.ToInt32(DateTime.Now.Second) % 5 == 0)
      { //' Math.Abs(cCount - Now.Minute) >= 5
      InitChart(-290, 20);
      cCount = Convert.ToInt32(DateTime.Now.Second);
      //Application.DoEvents();
      }
      }
      //label1.Text = Convert.ToString(DateTime.Now.ToString("hh:mm:ss.fff"));
      }
      private void InitChart(int MinSecInterval=-290, int MaxSecInterval=20)
      {
      chart1.ChartAreas[0].AxisX.Minimum = DateTime.Now.AddSeconds(MinSecInterval).ToOADate();
      chart1.ChartAreas[0].AxisX.Maximum = DateTime.Now.AddSeconds(MaxSecInterval).ToOADate();
      chart1.ChartAreas[0].AxisX.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Seconds;
      chart1.ChartAreas[0].AxisX.Interval = (MaxSecInterval - MinSecInterval) / 20;
      }

  • @aunghtay-rg5bk
    @aunghtay-rg5bk Месяц назад +1

    May you please share the file?

    • @forsytee
      @forsytee  Месяц назад

      @@aunghtay-rg5bk спасибо за комментарий) файла уже давно нет, перепишите руками, там очень мало кода

  • @AspAsp-l8k
    @AspAsp-l8k 9 месяцев назад +1

    технологии в 22 году не дошли до того этапа, чтоб удалять из массива данные вышедшие за временной интервал и не тереть весь график

    • @forsytee
      @forsytee  9 месяцев назад

      Спасибо за комментарий)

  • @FBI0777
    @FBI0777 2 года назад +1

    не могу найти chart в 2022 версии

    • @forsytee
      @forsytee  2 года назад +1

      а он в какой-то версии дот нет пропал, почитайте комментарии внизу мы с кем-то это обсуждали. вроде в .нет 4.6.1 он есть а потом пропал.

    • @FBI0777
      @FBI0777 2 года назад +1

      @@forsytee Спасибо за ответ, нашел коменты внизу, отвечу по ним.