Шпаргалка по ZedGraph. Как задавать расположение отдельных графиков на MasterPane | jenyay.net

Шпаргалка по ZedGraph. Как задавать расположение отдельных графиков на MasterPane

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

Проект в примере - MasterPane2.


private void DrawGraph ()
{
    // Создаем экземпляр класса MasterPane, который представляет собой область,
    // на которйо "лежат" все графики (экземпляры класса GraphPane)
    ZedGraph.MasterPane masterPane = zedGraph.MasterPane;

    // По умолчанию в MasterPane содержится один экземпляр класса GraphPane
    // (который можно получить из свойства zedGraph.GraphPane)
    // Очистим этот список, так как потом мы будем создавать графики вручную
    masterPane.PaneList.Clear ();

    // Добавим три графика
    for (int i = 0; i < 9; i++)
    {
        // Создаем экземпляр класса GraphPane, представляющий собой один график
        GraphPane pane = new GraphPane ();

        // Заполнение графика данными не изменилось,
        // поэтому вынесем заполнение точек в отдельный метод DrawSingleGraph()
        DrawSingleGraph (pane);

        // Добавим новый график в MasterPane
        masterPane.Add (pane);
    }

    // Будем размещать добавленные графики в MasterPane
    using (Graphics g = CreateGraphics ())
    {
        // Графики будут размещены в три строки.
        // В первой будет 4 столбца,
        // Во второй - 2
        // В третей - 3
        // Если бы второй аргумент был равен false, то массив из третьего аргумента
        // задавал бы не количество столбцов в каждой строке,
        // а количество строк в каждом столбце
        masterPane.SetLayout (g, true, new int[] {4, 2, 3 } );
    }

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

private double f (double x)
{
    if (x == 0)
    {
        return 1;
    }

    return Math.Sin (x) / x;
}

private void DrawSingleGraph (GraphPane pane)
{
    pane.CurveList.Clear ();

    PointPairList list = new PointPairList ();

    double xmin = -40;
    double xmax = 40;

    for (double x = xmin; x <= xmax; x += 0.01)
    {
        list.Add (x, f (x));
    }

    LineItem myCurve = pane.AddCurve ("Sinc", list, Color.Blue, SymbolType.None);
}

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

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

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



Артем 12.05.2014 - 17:48

Как ""склеить"" отдельные графики по высоте

Как убрать расстояние между графиками по высоте.(на картинке выделено желтым)
http://hostingkartinok.com/show-image.php?id=3e0b12ba757eb1ec9a7686f1d7f9b641


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

mrt 01.12.2009 - 00:24

возможно ли на masterpain разместить разные графики? и если да, то как задать их расположение?

Jenyay 01.12.2009 - 08:57

mrt, если я правильно Вас понял, то нужно просто сделать несколько функций, аналогичных DrawSingleGraph() и вызывать соответствующую функцию для графика, расположенного в нужной клетке.