Шпаргалка по ZedGraph. Как менять размеры шрифтов у различных элементов графика | jenyay.net

Шпаргалка по ZedGraph. Как менять размеры шрифтов у различных элементов графика

Этот пример я решил сделать после того как пришлось полчаса рыскать по документации, чтобы понять как менять размер шрифтов для меток вдоль осей. Нашел случайно в таком месте, где искать бы и не додумался.

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

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

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

    return Math.Sin (x) / x;
}

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

    // Размеры шрифтов для разных элементов графика
    int labelsXfontSize = 25;
    int labelsYfontSize = 20;

    int titleXFontSize = 25;
    int titleYFontSize = 20;

    int legendFontSize = 15;

    int mainTitleFontSize = 30;

    // Установим размеры шрифтов для меток вдоль осей
    pane.XAxis.Scale.FontSpec.Size = labelsXfontSize;
    pane.YAxis.Scale.FontSpec.Size = labelsYfontSize;

    // Установим размеры шрифтов для подписей по осям
    pane.XAxis.Title.FontSpec.Size = titleXFontSize;
    pane.YAxis.Title.FontSpec.Size = titleYFontSize;

    // Установим размеры шрифта для легенды
    pane.Legend.FontSpec.Size = legendFontSize;

    // Установим размеры шрифта для общего заголовка
    pane.Title.FontSpec.Size = mainTitleFontSize;
    pane.Title.FontSpec.IsUnderline = true;


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

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

    double xmin = -50;
    double xmax = 50;

    // Заполняем список точек
    for (double x = xmin; x <= xmax; x += 0.01)
    {
        // добавим в список точку
        list.Add (x, f (x));
    }

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

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

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

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

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

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



Maks 22.03.2010 - 18:06

Размер шрифта

А можно-ли зафиксировать размер шрифта у меток для осей, а то при изменении размера окна приложения с ZedGraph-ом меняется размер шрифтов всех объектов? Блин, сильно раздражает, использую сей контрол для отображения нескольких графиков, строю их в один столбец, из меню выбираю какие графики отображать, как добавлю более 3-х графиков, почти ничего не видно, что там написано, как оставлю один - из соседней комнаты можно читать подписиangry smiley

Jenyay 22.03.2010 - 20:58

Пока еще с этим не разбирался. Как временное решение можно размер шрифта корректировать при изменении размера окна пропорционально этому самому изменению.

Андрей 27.04.2011 - 02:12

Согласен... очень мешает. Либо это не продумано, либо очень глубоко запрятано... Размер шрифта в ZedGraph в каких-то относительных единицах. Думал, может есть какой-нибудь флажок, чтобы задавать абсолютные значения. Ничего подобного не нашёл :(

Андрей 27.04.2011 - 02:23

Разобрался

У класса GraphPane есть свойство IsFontScaled - помогает :)
Не так уж и глубоко, надо было только на поверхности поискать.

Jenyay 27.04.2011 - 16:11

Андрей, спасибо за инфу. Надо будет соответствующий пример сделать.

Антон 27.05.2011 - 15:38

Нестандартные подписи к осям

Здравствуйте, уважаемые коллеги.
У меня вопрос очень простой можно ли сделать подпись к осям с верхними или нижними индексами? если не возможно, то может проще в это место вставить картинку на которой нарисован данный символ(но как вставить картинку не знаю).
И ещё один вопрос.
Xmin = 0;
Xmax = 20;
Ymin = 0;
Ymax = 10;
Есть кривая выходит из точки Xmin,Ymin и под углом в 30 или 45 градусов поднимается до Xmax, Ymax/2. Так вот вопрос, как на этой кривой ближе к конечной точки сделать надпись под углом 30 или 45 градусов?. Опять же надпись может быть с индексами как верхними так и нижними. Можно ли решить данную задачу с помощью ZedGraph? если да, то как.

С Уважением, Антон.

johny 09.08.2011 - 21:10

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

Jenyay 09.08.2011 - 22:14

Про то, как сделать так, чтобы размер шрифтов не менялся при масштабировании, посмотрите вот этот пример - http://jenyay.net/ZedGraph/FontScaled

Alex 24.09.2011 - 01:36

заголовок ОСИ Y

Не подскажите, как можно заголовок ОСИ Y разместить на самом вверху?


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