Шпаргалка по ZedGraph. Как изменять формат меток на осях
Если вас не устраивает формат, в котором ZedGraph отображает метки по осям, то вы можете изменить этот формат. В простейшем случае это можно сделать, используя свойство Scale.Format.
В приведенном ниже примере по оси X мы устанавливаем формат календарной оси, а по оси Y делаем так, чтобы отображались с фиксированными тремя знаками после запятой. При этом формат задается с помощью строк форматирования.
Все примеры объединены в одном solution для Visual Studio 2005 и написаны на языке C#, скачать их можно отсюда.
Проект в примере - AxisFormat
public partial class Form1 : Form
{
public Form1 ()
{
InitializeComponent ();
DrawGraph ();
}
private void DrawGraph ()
{
// Получим панель для рисования
GraphPane pane = zedGraph.GraphPane;
// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
pane.CurveList.Clear ();
Random rnd = new Random (100);
// Даты, которым будут соответствовать столбики
XDate[] dates = new XDate[] { new XDate (2011, 02, 25), new XDate (2011, 02, 26),
new XDate (2011, 02, 27), new XDate (2011, 03, 01), new XDate (2011, 03, 02),
new XDate (2011, 03, 04), new XDate (2011, 03, 06)};
// Для построения графика даты нужно преобразовать к Double
double[] xvalues = new double[dates.Length];
// Высота столбиков
double[] yvalues = new double[dates.Length];
// Заполним данные
for (int i = 0; i < dates.Length; i++)
{
// Значения по оси X
xvalues[i] = dates[i];
// Высота столбиков
yvalues[i] = rnd.NextDouble ();
}
// Создадим кривую-гистограмму
BarItem curve = pane.AddBar ("", xvalues, yvalues, Color.Blue);
// Для оси X установим календарный тип
pane.XAxis.Type = AxisType.Date;
// !!! Установим формат для календарной оси
// http://msdn.microsoft.com/ru-ru/library/system.globalization.datetimeformatinfo.aspx
pane.XAxis.Scale.Format = "dd.MM.yyyy";
// !!! Установим формат для числовой оси
// http://msdn.microsoft.com/ru-ru/library/system.globalization.numberformatinfo.aspx
pane.YAxis.Scale.Format = "F3";
// Вызываем метод AxisChange (), чтобы обновить данные об осях.
zedGraph.AxisChange ();
// Обновляем график
zedGraph.Invalidate ();
}
}
{
public Form1 ()
{
InitializeComponent ();
DrawGraph ();
}
private void DrawGraph ()
{
// Получим панель для рисования
GraphPane pane = zedGraph.GraphPane;
// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
pane.CurveList.Clear ();
Random rnd = new Random (100);
// Даты, которым будут соответствовать столбики
XDate[] dates = new XDate[] { new XDate (2011, 02, 25), new XDate (2011, 02, 26),
new XDate (2011, 02, 27), new XDate (2011, 03, 01), new XDate (2011, 03, 02),
new XDate (2011, 03, 04), new XDate (2011, 03, 06)};
// Для построения графика даты нужно преобразовать к Double
double[] xvalues = new double[dates.Length];
// Высота столбиков
double[] yvalues = new double[dates.Length];
// Заполним данные
for (int i = 0; i < dates.Length; i++)
{
// Значения по оси X
xvalues[i] = dates[i];
// Высота столбиков
yvalues[i] = rnd.NextDouble ();
}
// Создадим кривую-гистограмму
BarItem curve = pane.AddBar ("", xvalues, yvalues, Color.Blue);
// Для оси X установим календарный тип
pane.XAxis.Type = AxisType.Date;
// !!! Установим формат для календарной оси
// http://msdn.microsoft.com/ru-ru/library/system.globalization.datetimeformatinfo.aspx
pane.XAxis.Scale.Format = "dd.MM.yyyy";
// !!! Установим формат для числовой оси
// http://msdn.microsoft.com/ru-ru/library/system.globalization.numberformatinfo.aspx
pane.YAxis.Scale.Format = "F3";
// Вызываем метод AxisChange (), чтобы обновить данные об осях.
zedGraph.AxisChange ();
// Обновляем график
zedGraph.Invalidate ();
}
}
Вернуться к остальным примерам
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.