Шпаргалка по ZedGraph. Как сделать, чтобы оси пересекались в центре графика

По умолчанию оси расположены по краям графика. Если нужно сделать так, чтобы оси пересекались в центре графика, например, в точке (0; 0), как это обычно принято, то для этого используется свойство Cross класса Axis.

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

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

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

            DrawGraph ();
        }


        private double f (double x)
        {
            return -x * x + 30;
        }


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

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

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

            double xmin = -10;
            double xmax = 10;

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

            // Создадим кривую
            LineItem myCurve = pane.AddCurve ("", list, Color.Blue, SymbolType.None);


            // !!!
            // Ось X будет пересекаться с осью Y на уровне Y = 0
            pane.XAxis.Cross = 0.0;

            // Ось Y будет пересекаться с осью X на уровне X = 0
            pane.YAxis.Cross = 0.0;

            // Отключим отображение первых и последних меток по осям
            pane.XAxis.Scale.IsSkipFirstLabel = true;
            pane.XAxis.Scale.IsSkipLastLabel = true;

            // Отключим отображение меток в точке пересечения с другой осью
            pane.XAxis.Scale.IsSkipCrossLabel = true;


            // Отключим отображение первых и последних меток по осям
            pane.YAxis.Scale.IsSkipFirstLabel = true;

            // Отключим отображение меток в точке пересечения с другой осью
            pane.YAxis.Scale.IsSkipLastLabel = true;
            pane.YAxis.Scale.IsSkipCrossLabel = true;

            // Спрячем заголовки осей
            pane.XAxis.Title.IsVisible = false;
            pane.YAxis.Title.IsVisible = false;

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


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

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


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

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



Владимир 03.06.2013 - 00:18

отобразить значение по х и по у, там где график пересекает оси

Подскажите как отображать значения (группа х и у) для каждой точки где график пересекает оси координат? И как это делать при различно масштабируемых графиках в одном контроле?

Александр 13.06.2013 - 18:06

Свойство Axis.Cross

Подскажите, почему при установки значения данного свойства ничего не происходит даже при выполнения zedGraph.AxisChange (); и zedGraph.Invalidate ();

Игорь 03.09.2014 - 16:00

Подписи по оси Y справа

Как отобразить подписи по оси Y справа?

Игорь 04.09.2014 - 02:18

Проект живой

Проект живой?

Jenyay 04.09.2014 - 09:22

Какой именно проект? ZedGraph? Ну он давно не обновлялся.

Игорь 10.09.2014 - 00:29

Повторяю

Проект живой? - я про сайт, а вопрос интересует:
Как отобразить подписи по оси Y справа?

Jenyay 10.09.2014 - 10:18

Сайт то живой, но я в последнее время давно не пользовался ZedGraph, поэтому именно этот раздел давно не пополнялся.

Сергей 12.02.2015 - 14:28

Как зафиксировать подписи осей

Доброго времени суток. Не подскажите, как зафиксировать подписи оси X сверху?


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