Шпаргалка по ZedGraph. Как добавлять и удалять кривые | jenyay.net

Шпаргалка по ZedGraph. Как добавлять и удалять кривые

Этот пример показывает как в компонент ZedGraph можно добавлять новые кривые и удалять существующие. Кнопка "Добавить" в главном окне добавляет график по случайным точкам случайного цвета, а кнопка "Удалить" удаляет случайный график.

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

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

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

        // Массив цветов, из которых будем выбирать случайным образом цвет для графика
        Color[] _colors = new Color[] {Color.Black,
            Color.Blue,
            Color.Brown,
            Color.Gray,
            Color.Green,
            Color.Indigo,
            Color.Orange,
            Color.Red,
            Color.YellowGreen};

        /// <summary>
        /// Обработчик нажатия на кнопку "Добавить"
        /// </summary>
        private void addBtn_Click (object sender, EventArgs e)
        {
            // Для генерации случайных точек и случайного цвета кривой
            Random rnd = new Random ();

            GraphPane pane = zedGraph.GraphPane;

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

            double xmin = -50;
            double xmax = 50;

            // Заполняем список точек. Приращение по оси X тоже случайно
            for (double x = xmin; x <= xmax; x += rnd.NextDouble () * 10 + 1)
            {
                // Случайная координата по Y
                double y = rnd.NextDouble () * 10 - 5;

                // добавим в список точку
                list.Add (x, y);
            }

            // Выберем случайный цвет для графика
            Color curveColor = _colors[rnd.Next (_colors.Length)];
            LineItem myCurve = pane.AddCurve ("", list, curveColor, SymbolType.None);

            // Включим сглаживание
            myCurve.Line.IsSmooth = true;

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

        /// <summary>
        /// Обработчик нажатия на кнопку "Удалить"
        /// </summary>
        private void removeBtn_Click (object sender, EventArgs e)
        {
            // Генератор случайных чисел для выбора номера графика, который нужно удалить
            Random rnd = new Random ();

            GraphPane pane = zedGraph.GraphPane;

            // Если есть что удалять
            if (pane.CurveList.Count > 0)
            {
                // Номер графика для удаления
                int index = rnd.Next (pane.CurveList.Count);

                // Удалим кривую по индексу
                pane.CurveList.RemoveAt (index);

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

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

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

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



Владимир 20.03.2013 - 10:53

А как удалить конкретную линию, или серию линий??? Как отследить номер линии которую прорисовали???

Виктор 30.11.2015 - 08:03

Сглаживание.

myCurve.Line.IsSmooth = true;
Не очень то и помогает(вернее совсем не изменяет ни чего), как можно сделать по другому?


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