Шпаргалка по ZedGraph. Как нарисовать график в виде отдельных не связанных точек (scatter graph) | jenyay.net

Шпаргалка по ZedGraph. Как нарисовать график в виде отдельных не связанных точек (scatter graph)

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

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

private void DrawGraph ()
{
    // Получим панель для рисования
    GraphPane pane = zedGraph.GraphPane;

    // Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
    pane.CurveList.Clear ();

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

    // Интервал, в котором будут лежать точки
    int xmin = -100;
    int xmax = 100;

    int ymin = -100;
    int ymax = 100;

    int pointsCount = 50;

    Random rnd = new Random ();

    // Заполняем список точек
    for (int i = 0; i < pointsCount; i++ )
    {
        // Случайным образом сгенерим точку
        int x = rnd.Next (xmin, xmax);
        int y = rnd.Next (ymin, ymax);

        list.Add (x, y);
    }

    // !!!
    // Создадим кривую с названием "Scatter".
    // Обводка ромбиков будут рисоваться голубым цветом (Color.Blue),
    // Опорные точки - ромбики (SymbolType.Diamond)
    LineItem myCurve = pane.AddCurve ("Scatter", list, Color.Blue, SymbolType.Diamond);

    // !!!
    // У кривой линия будет невидимой
    myCurve.Line.IsVisible = false;

    // !!!
    // Цвет заполнения отметок (ромбиков) - голубой
    myCurve.Symbol.Fill.Color = Color.Blue;

    // !!!
    // Тип заполнения - сплошная заливка
    myCurve.Symbol.Fill.Type = FillType.Solid;

    // !!!
    // Размер ромбиков
    myCurve.Symbol.Size = 7;


    // Устанавливаем интересующий нас интервал по оси X
    pane.XAxis.Scale.Min = xmin;
    pane.XAxis.Scale.Max = xmax;

    // Устанавливаем интересующий нас интервал по оси Y
    pane.YAxis.Scale.Min = ymin;
    pane.YAxis.Scale.Max = ymax;

    // Вызываем метод AxisChange (), чтобы обновить данные об осях.
    // В противном случае на рисунке будет показана только часть графика,
    // которая умещается в интервалы по осям, установленные по умолчанию
    zedGraph.AxisChange ();

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

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

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

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



Дмитрий 12.09.2010 - 08:27

Выделить точку

подскажите, как мне выделить всего одну точку. я щелкаю на любом участке графика, вычисляю координаты щелчка и дальше по нажатию кнопки рисую линию, так вот не могу понять как выделить начало рисования (ту координату где щелкнул), каким то квадратиком или жирной точкой выделить??

Дмитрий 13.09.2010 - 09:42

сделал:

            if (t != null){t.Clear();} // если точка уже есть, удалим ее
            t = new PointPairList();
            t.Add(xClick, yClick);
            LineItem point = pane.AddCurve("", t, Color.Purple, SymbolType.Star);

Maks 18.10.2010 - 23:57

А у меня в С++ не рисует.frowning smiley

Саша 08.06.2016 - 23:24

Описка

 // Цвет заполнения отметок (ромбиков) - колубой happy smiley
    myCurve.Symbol.Fill.Color = Color.Blue;

Jenyay 09.06.2016 - 08:57

Спасибо большое, поправил.


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