Шпаргалка по ZedGraph. Как использовать оси в календарном формате
Компонент ZedGraph позволяет откладывать по осям даты. Этот пример демонстрирует, как создавать кривые, которые используют такие оси. Этот же пример показывает, как в этом случае изменять масштаб графика.
![](http://jenyay.net/uploads/ZedGraph/DateAxis/zedgraph_axis_date.png)
Все примеры объединены в одном solution для Visual Studio 2005 и написаны на языке C#, скачать их можно отсюда.
Проект в примере - DateAxis
public partial class Form1 : Form
{
public Form1 ()
{
InitializeComponent ();
DrawGraph ();
}
private void DrawGraph ()
{
// Получим панель для рисования
GraphPane pane = zedGraph.GraphPane;
// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
pane.CurveList.Clear ();
// Создадим список точек
PointPairList list = new PointPairList ();
// Первая дата на оси X
DateTime startDate = new DateTime (2011, 02, 25);
// Количество отсчетов по оси X (количество дней)
int daysCount = 20;
Random rnd = new Random();
// Заполняем список точек
for (int i = 0; i < daysCount; i++)
{
// Текущая точка по оси X. Один отсчет - один день
DateTime currentDate = startDate.AddDays (i);
// Текущее значение по оси Y
double yValue = rnd.NextDouble () * 0.2 + 0.9;
// Используем класс XDate для преобразования DateTime к типу Double.
// Используется неявное приведение к типу Double.
// Внутри класса даты хранятся в виде дробных чисел.
// Вместо DateTime можно было бы сразу использовать тип XDate
list.Add (new XDate (currentDate), yValue);
}
// Создаем кривую,
// которая будет рисоваться голубым цветом (Color.Blue),
// опорные точки выделяться не будут (SymbolType.None)
// Создание кривой с использованием дат ничем не отличается от создания других кривых
LineItem myCurve = pane.AddCurve ("", list, Color.Blue, SymbolType.None);
// Установим, что по оси X у нас откладываются даты,
pane.XAxis.Type = AxisType.Date;
// Для наглядности установим масштаб по оси Y
pane.YAxis.Scale.Min = 0;
pane.YAxis.Scale.Max = 1.4;
// Пример изменения масштаба по оси, где откладываютя даты
// Есть несколько перегруженных конструкторов класса XDate, мы будем использовать
// тот, что принимает год, месяц и число соответственно.
pane.XAxis.Scale.Min = new XDate (2011, 02, 20);
pane.XAxis.Scale.Max = new XDate (2011, 03, 20);
// Вызываем метод AxisChange (), чтобы обновить данные об осях.
zedGraph.AxisChange ();
// Обновляем график
zedGraph.Invalidate ();
}
}
{
public Form1 ()
{
InitializeComponent ();
DrawGraph ();
}
private void DrawGraph ()
{
// Получим панель для рисования
GraphPane pane = zedGraph.GraphPane;
// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
pane.CurveList.Clear ();
// Создадим список точек
PointPairList list = new PointPairList ();
// Первая дата на оси X
DateTime startDate = new DateTime (2011, 02, 25);
// Количество отсчетов по оси X (количество дней)
int daysCount = 20;
Random rnd = new Random();
// Заполняем список точек
for (int i = 0; i < daysCount; i++)
{
// Текущая точка по оси X. Один отсчет - один день
DateTime currentDate = startDate.AddDays (i);
// Текущее значение по оси Y
double yValue = rnd.NextDouble () * 0.2 + 0.9;
// Используем класс XDate для преобразования DateTime к типу Double.
// Используется неявное приведение к типу Double.
// Внутри класса даты хранятся в виде дробных чисел.
// Вместо DateTime можно было бы сразу использовать тип XDate
list.Add (new XDate (currentDate), yValue);
}
// Создаем кривую,
// которая будет рисоваться голубым цветом (Color.Blue),
// опорные точки выделяться не будут (SymbolType.None)
// Создание кривой с использованием дат ничем не отличается от создания других кривых
LineItem myCurve = pane.AddCurve ("", list, Color.Blue, SymbolType.None);
// Установим, что по оси X у нас откладываются даты,
pane.XAxis.Type = AxisType.Date;
// Для наглядности установим масштаб по оси Y
pane.YAxis.Scale.Min = 0;
pane.YAxis.Scale.Max = 1.4;
// Пример изменения масштаба по оси, где откладываютя даты
// Есть несколько перегруженных конструкторов класса XDate, мы будем использовать
// тот, что принимает год, месяц и число соответственно.
pane.XAxis.Scale.Min = new XDate (2011, 02, 20);
pane.XAxis.Scale.Max = new XDate (2011, 03, 20);
// Вызываем метод AxisChange (), чтобы обновить данные об осях.
zedGraph.AxisChange ();
// Обновляем график
zedGraph.Invalidate ();
}
}
Вернуться к остальным примерам
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.