Шпаргалка по ZedGraph. Как рисовать графики с отображением допусков | jenyay.net

Шпаргалка по ZedGraph. Как рисовать графики с отображением допусков

Иногда требуется не просто нарисовать график, построенный по точкам, но и для каждой точки указать интервал, в котором лежит истинное значение для данной точки. Для этой цели в компоненте Zedgraph предусмотрены классы ErrorBar и ErrorBarItem. Данный пример показывает, как можно строить графики с допусками.

Все примеры объединены в одном solution для Visual Studio 2005 и написаны на языке C#, скачать их можно отсюда.

Проект в примере - ErrorBar

    public partial class Form1 : Form
    {
        public Form1 ()
        {
            InitializeComponent ();

            DrawGraph ();
        }


        private double f (double x)
        {
            return Math.Sin (x) * Math.Cos (2 * x);
        }


        private void DrawGraph ()
        {
            GraphPane pane = zedGraph.GraphPane;

            // Очистим список кривых
            pane.CurveList.Clear ();

            // Создадим список точек
            PointPairList dataList = new PointPairList ();

            // !!! Создадим список допусков
            PointPairList errorList = new PointPairList ();

            double xmin = 0;
            double xmax = 4 * Math.PI;

            // Величина допуска для всех точек
            double error = 0.1;

            // Заполняем список точек
            for (double x = xmin; x <= xmax; x += 0.3)
            {
                double curry = f (x);

                // Добавим в список точку
                dataList.Add (x, curry);

                // !!! Добавим допуск для этой же точки
                // Первый параметр - координата X,
                // Второй параметр - минимальное значение интервала
                // Третий параметр - максимальное значение интервала
                errorList.Add (x, curry - error, curry + error);
            }

            // Создадим кривую с данными
            LineItem myCurve = pane.AddCurve ("Data", dataList, Color.Blue, SymbolType.Circle);
            myCurve.Symbol.Size = 5.0f;

            // !!! Создадим кривую, отображающую допуски
            ErrorBarItem errorCurve = pane.AddErrorBar ("Error", errorList, Color.Black);

            // Вызываем метод AxisChange (), чтобы обновить данные об осях.
            zedGraph.AxisChange ();

            // Обновляем график
            zedGraph.Invalidate ();
        }
    }

Вернуться к остальным примерам


Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
5 stars

Рейтинг 5.0/5. Всего 1 голос(а, ов)



yuler 27.01.2016 - 23:05

с просьбой помощи

Всем доброго дня! ребята, я только что начал применит зедграф в своих приложениях на C#. Помогите найти правильное направление. Задача такая: по оси х должны отображаться время в диапазоне 1ч., по оси y отображается значении от 0 до 100. График должен быт в реальном времени. Но вначале я должен задавать график первый кривой постоянного отображения, координаты этого кривого примерно так: х = 100,200,300 и.т.д.до 3600 в секундах. А для второй кривой должен рисоваться по сигналу полученный от юсб порта, диапазон от 0 до 100. При этом изменяя сигнал я должен отслеживать первого графика. Пробовал 2, 3 варианта. Вроде получился но есть проблемы. А именно, проходя некоторое время таймер замедляется. Да кстати для отсчета времени я применял таймер. По этому вопрос такой: 1.Как можно осуществить связь обновление или перерисовка графика по события тиков компьютерных часов для того чтобы было график реального времени на каждой секунд. 2. Может я совсем не на правильном пути?. По какому дверью надо стучать? Исходник пока через – чур грязные, по этому я не стал выложит на комментариях. А скриншофт ни как не смог прикрепить сюда, не могу найти где кнопочка.


Подписаться на комментарии
Автор:
Тема:
 Ваш комментарий
 
 
Введите код 224