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
Выдает такую вот ошибку,не представляю в чем может быть проблема
Что посоветуете?
20.09.2014 - 21:54
Приём данных из файла
Пробовал написать свою простенькую программу через DrawLine() и Refresh + Timer, но максимум это первый фрэйм, далее у меня не происходит смещения начала координат. Решил, что проще будет остановиться на Zed библиотеке, но как-то не пошло. В моей собственной программе график строится по одномерному массиву точек y. Но убираю изначально заданные в вышеприведенном примере случайные точки, пробую прикрутить своё и ничего не строится - возможно, накосячил с событием (построение по щелчку кнопки)
Олег 06.12.2016 - 02:32
Как скролбар сделать в ZedGraph
Не получается никак сделать скролбар. Хочу чтобы прокручивать график можно было. А как скрол добавить ?