Queue-Comments | jenyay.net

Queue-Comments

wers 22.02.2010 - 01:06

а как ?

А как интересно сделать что бы с данными двигалась и ось X.

Jenyay 22.02.2010 - 09:32

Нужно менять еще и начальную координату по X - curr_x.

кот 28.04.2010 - 14:08

как сделать

подскажите, пожалуйста, как сделать, чтобы по оси Х был отрезок от 0 до 24, при этом график ресуется с начала координат и до 24. т.е. ось Х не двигается, а двигается только сам график к 24.. ?

Jenyay 28.04.2010 - 14:24

кот, если честно, не понял, Вы имеете в виду.

кот 28.04.2010 - 14:32

по оси Х временная шкала. нужно, чтобы за каждую секунду отрисовывалась новая часть графика. в приведенном выше коде, когда значения по Х переваливают за 30, то график сдвигается влево (часть графика пропадает), а мне нужно на протяжении всех 24 часов следить за графиком.

Jenyay 28.04.2010 - 15:27

Тогда самое простое - завести массив, куда будут добавляться данные, а по мере поступления новых данных его дополнять, при этом выводить все точки.

sasha_g1981 01.10.2010 - 12:06

using System;
using System.Drawing;
using System.Windows.Forms;
using ZedGraph;

namespace zed_graf_test
{
    public partial class Form1 : Form
    {
        int tickStart = 0;

        GraphPane myPane;
        PointPairList list;
        LineItem curve;

        // количество точек на графике 1600
        private int numberPointsInChart=1600;

        // удалять точки с графика по 1
        private int deletePoints=1;

        bool IsLeftButtonDown = false;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            myPane = zedGraphControl1.GraphPane;

            myPane.Title.Text = "";
            myPane.XAxis.Title.Text = "";
            myPane.YAxis.Title.Text = "";

            myPane.XAxis.Scale.MaxAuto = true;
            myPane.XAxis.Scale.MinAuto = true;

            // myPane.XAxis.Scale.MinorStep = 1;
            // myPane.XAxis.Scale.MajorStep = 5;

            myPane.YAxis.Scale.Min = -5;
            myPane.YAxis.Scale.Max = 5;

            //myPane.YAxis.Scale.MaxAuto = true;
            //myPane.YAxis.Scale.MinAuto = true;

            zedGraphControl1.IsEnableHPan = false;
            zedGraphControl1.IsEnableHZoom = false;

            zedGraphControl1.IsEnableVPan = false;
            zedGraphControl1.IsEnableVZoom = true;

            list = new PointPairList();

            curve = myPane.AddCurve("(time,  8*Math.Sin(Math.PI * time)n"+
                "-4*Math.Sin(-Math.PI * time) * Math.Sin(64.0* Math.PI * time ))",
                list, Color.Blue, SymbolType.None);

            zedGraphControl1.AxisChange();

            timer1.Interval = 10;
            timer1.Enabled = true;
            timer1.Start();

            tickStart = Environment.TickCount;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            double time = (Environment.TickCount - tickStart) / 10000.0;

            list.Add(time,  8*Math.Sin(1*Math.PI * time)
                -4*Math.Sin(-Math.PI * time) * Math.Sin(64.0* Math.PI * time ));

            Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale;
            xScale.Max = curve.Points[list.Count - 1].X;

            while (list.Count > numberPointsInChart)
            {
                while (list.Count > (numberPointsInChart - deletePoints))
                {
                    list.RemoveAt(0);
                }
                xScale.Min = curve.Points[0].X;              
            }

            zedGraphControl1.AxisChange();

            if(!IsLeftButtonDown)
            zedGraphControl1.Refresh();

        }

        private bool zedGraphControl1_MouseDownEvent(ZedGraphControl sender, MouseEventArgs e)
        {
            if (e.Button==MouseButtons.Left)
            IsLeftButtonDown = true;
            return default(bool);
        }

        private bool zedGraphControl1_MouseUpEvent(ZedGraphControl sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            IsLeftButtonDown = false;
            return default(bool);
        }

    }
}

qu_dot 25.05.2011 - 12:07

с временем по X

Как сделать этот изменяющийся график чтобы по X откладывалось системное время в формате часы.минуты.секунды ?

KokosSPb 19.03.2012 - 09:25

Как выводить постоянно обновляемые данные

Jenyay 28.04.2010 - 15:27

Тогда самое простое - завести массив, куда будут добавляться данные, а по мере поступления новых данных его дополнять, при этом выводить все точки.

да, но как при этом постоянно смещать график правее? я пишу на С++, не получается ввести в отрисовке myPane, она для Load_Graw прописана, для создания и всё...

Андрей 03.08.2012 - 17:35

Прокрутка тренда

Как-нибудь можно сделать ось X c прокруткой. У меня временной график, скажем за сутки. Я хочу сделать, чтобы в окне был график за час (с выбором интервала). Двигая прокруткой - двигается график и выбираешь нужный интервал. Можно так сделать?

Varro 19.11.2012 - 13:40

Отключить автопрокрутку

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

Snow 30.11.2012 - 11:32

AxisChange() - Out of memory exception

Выдает такую вот ошибку,не представляю в чем может быть проблема frowning smiley Что посоветуете?

 20.09.2014 - 21:54

Приём данных из файла

Пробовал написать свою простенькую программу через DrawLine() и Refresh + Timer, но максимум это первый фрэйм, далее у меня не происходит смещения начала координат. Решил, что проще будет остановиться на Zed библиотеке, но как-то не пошло. В моей собственной программе график строится по одномерному массиву точек y. Но убираю изначально заданные в вышеприведенном примере случайные точки, пробую прикрутить своё и ничего не строится - возможно, накосячил с событием (построение по щелчку кнопки)

Олег 06.12.2016 - 02:32

Как скролбар сделать в ZedGraph

Не получается никак сделать скролбар. Хочу чтобы прокручивать график можно было. А как скрол добавить ?