Шпаргалка по ZedGraph. Как добавлять и удалять кривые
Этот пример показывает как в компонент ZedGraph можно добавлять новые кривые и удалять существующие. Кнопка "Добавить" в главном окне добавляет график по случайным точкам случайного цвета, а кнопка "Удалить" удаляет случайный график.
Все примеры объединены в одном solution для Visual Studio 2005 и написаны на языке C#, скачать их можно отсюда.
Проект в примере - AddRemoveCurve
public partial class Form1 : Form
{
public Form1 ()
{
InitializeComponent ();
}
// Массив цветов, из которых будем выбирать случайным образом цвет для графика
Color[] _colors = new Color[] {Color.Black,
Color.Blue,
Color.Brown,
Color.Gray,
Color.Green,
Color.Indigo,
Color.Orange,
Color.Red,
Color.YellowGreen};
/// <summary>
/// Обработчик нажатия на кнопку "Добавить"
/// </summary>
private void addBtn_Click (object sender, EventArgs e)
{
// Для генерации случайных точек и случайного цвета кривой
Random rnd = new Random ();
GraphPane pane = zedGraph.GraphPane;
// Создадим список точек
PointPairList list = new PointPairList ();
double xmin = -50;
double xmax = 50;
// Заполняем список точек. Приращение по оси X тоже случайно
for (double x = xmin; x <= xmax; x += rnd.NextDouble () * 10 + 1)
{
// Случайная координата по Y
double y = rnd.NextDouble () * 10 - 5;
// добавим в список точку
list.Add (x, y);
}
// Выберем случайный цвет для графика
Color curveColor = _colors[rnd.Next (_colors.Length)];
LineItem myCurve = pane.AddCurve ("", list, curveColor, SymbolType.None);
// Включим сглаживание
myCurve.Line.IsSmooth = true;
// Обновим график
zedGraph.AxisChange ();
zedGraph.Invalidate ();
}
/// <summary>
/// Обработчик нажатия на кнопку "Удалить"
/// </summary>
private void removeBtn_Click (object sender, EventArgs e)
{
// Генератор случайных чисел для выбора номера графика, который нужно удалить
Random rnd = new Random ();
GraphPane pane = zedGraph.GraphPane;
// Если есть что удалять
if (pane.CurveList.Count > 0)
{
// Номер графика для удаления
int index = rnd.Next (pane.CurveList.Count);
// Удалим кривую по индексу
pane.CurveList.RemoveAt (index);
// Обновим график
zedGraph.AxisChange ();
zedGraph.Invalidate ();
}
}
}
{
public Form1 ()
{
InitializeComponent ();
}
// Массив цветов, из которых будем выбирать случайным образом цвет для графика
Color[] _colors = new Color[] {Color.Black,
Color.Blue,
Color.Brown,
Color.Gray,
Color.Green,
Color.Indigo,
Color.Orange,
Color.Red,
Color.YellowGreen};
/// <summary>
/// Обработчик нажатия на кнопку "Добавить"
/// </summary>
private void addBtn_Click (object sender, EventArgs e)
{
// Для генерации случайных точек и случайного цвета кривой
Random rnd = new Random ();
GraphPane pane = zedGraph.GraphPane;
// Создадим список точек
PointPairList list = new PointPairList ();
double xmin = -50;
double xmax = 50;
// Заполняем список точек. Приращение по оси X тоже случайно
for (double x = xmin; x <= xmax; x += rnd.NextDouble () * 10 + 1)
{
// Случайная координата по Y
double y = rnd.NextDouble () * 10 - 5;
// добавим в список точку
list.Add (x, y);
}
// Выберем случайный цвет для графика
Color curveColor = _colors[rnd.Next (_colors.Length)];
LineItem myCurve = pane.AddCurve ("", list, curveColor, SymbolType.None);
// Включим сглаживание
myCurve.Line.IsSmooth = true;
// Обновим график
zedGraph.AxisChange ();
zedGraph.Invalidate ();
}
/// <summary>
/// Обработчик нажатия на кнопку "Удалить"
/// </summary>
private void removeBtn_Click (object sender, EventArgs e)
{
// Генератор случайных чисел для выбора номера графика, который нужно удалить
Random rnd = new Random ();
GraphPane pane = zedGraph.GraphPane;
// Если есть что удалять
if (pane.CurveList.Count > 0)
{
// Номер графика для удаления
int index = rnd.Next (pane.CurveList.Count);
// Удалим кривую по индексу
pane.CurveList.RemoveAt (index);
// Обновим график
zedGraph.AxisChange ();
zedGraph.Invalidate ();
}
}
}
Вернуться к остальным примерам
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.