Шпаргалка по ZedGraph. Что такое кластеры и как их использовать в гистограммах

Интересной особенностью при построении гистограмм с помощью компонента ZedGraph является то, что он может объединять несколько гистограмм в так называемые кластеры, когда на одной отметке располагаются несколько столбцов.

Этот пример показывает как создавать кластеры и регулировать расстояние между столбцами внутри кластера. Чтобы регулировать расстояние между самими кластерами, смотрите пример Как сделать так, чтобы столбцы в гистограмме прилегали друг к другу вплотную.

Все примеры объединены в одном solution для Visual Studio 2005 и написаны на языке C#, скачать их можно отсюда.

Проект в примере - BarClusters

public partial class Form1 : Form
{
    public Form1 ()
    {
        InitializeComponent ();

        DrawGraph ();
    }

    private void DrawGraph ()
    {
        // Получим панель для рисования
        GraphPane pane = zedGraph.GraphPane;

        // Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
        pane.CurveList.Clear ();

        int itemscount = 5;

        Random rnd = new Random ();

        // Высоты столбиков
        double[] YValues1 = new double[itemscount];
        double[] YValues2 = new double[itemscount];
        double[] YValues3 = new double[itemscount];

        double[] XValues = new double[itemscount];

        // Заполним данные
        for (int i = 0; i < itemscount; i++)
        {
            XValues[i] = i + 1;

            YValues1[i] = rnd.NextDouble ();
            YValues2[i] = rnd.NextDouble ();
            YValues3[i] = rnd.NextDouble ();
        }

        // Создадим три гистограммы
        // Так как для всех гистограмм мы передаем одинаковые массивы координат по X,
        // то столбики будут группироваться в кластеры в этих точках.
        BarItem bar1 = pane.AddBar ("Values1", XValues, YValues1, Color.Blue);
        BarItem bar2 = pane.AddBar ("Values2", XValues, YValues2, Color.Red);
        BarItem bar3 = pane.AddBar ("Values3", XValues, YValues3, Color.Yellow);

        // !!! Расстояния между столбиками в кластере (группами столбиков)
        pane.BarSettings.MinBarGap = 0.0f;

        // !!! Увеличим расстояние между кластерами в 2.5 раза
        pane.BarSettings.MinClusterGap = 2.5f;


        // Вызываем метод AxisChange (), чтобы обновить данные об осях.
        zedGraph.AxisChange ();

        // Обновляем график
        zedGraph.Invalidate ();
    }
}

Вернуться к остальным примерам

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
5 stars

Рейтинг 4.7/5. Всего 9 голос(а, ов)




Подписаться на комментарии
Автор:
Тема:
 Ваш комментарий
 
 
Введите код 592