Шпаргалка по ZedGraph. Как нарисовать горизонтальную гистограмму | jenyay.net

Шпаргалка по ZedGraph. Как нарисовать горизонтальную гистограмму

Этот пример показывает как сделать так, чтобы гистограмма отображалась в виде горизонтальных столбцов

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

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

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

        DrawGraph ();
    }

    private void DrawGraph ()
    {
        GraphPane pane = zedGraph.GraphPane;
        pane.CurveList.Clear ();

        // Количество столбцов
        int itemscount = 9;

        // Сгенерируем данные для оси X (длин столбцов)
        double[] barLength = GenerateData (itemscount);

        double[] barPosition = new double[itemscount];

        // Заполним данные по оси Y (положения столбцов)
        for (int i = 0; i < itemscount; i++)
        {
            barPosition[i] = i + 1;
        }

        // !!! Создадим гистограмму.
        // Обратите внимание на порядок следования массивов:
        // сначала идут данные по оси X (длины столцов), потом по оси Y (положения столбцов)
        // Для вертикальных гистограмм значения по осям X и Y имеют противоположные значения.
        pane.AddBar ("", barLength, barPosition, Color.Blue);

        // Этот параметр указывает, что базовой осью для гистограммы будет ось Y,
        // то есть положения столбцов соответствуют значениям по оси Y.
        pane.BarSettings.Base = BarBase.Y;

        // Обновим данные об осях
        zedGraph.AxisChange ();

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


    /// <summary>
    /// Сгенерировать случайные данные для графика
    /// </summary>
    /// <param name="itemscount">Количество столбцов</param>
    /// <returns></returns>
    private double[] GenerateData (int itemscount)
    {
        Random rnd = new Random ();

        double[] values = new double[itemscount];

        // Заполним данные
        for (int i = 0; i < itemscount; i++)
        {
            values[i] = rnd.NextDouble ();
        }

        return values;
    }
}

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

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

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



Татьяна 12.01.2016 - 11:36

Здравствуйте! Можно ли на горизонтальной гистограмме указать легенду?

Татьяна 12.01.2016 - 11:41

простите, вопрос отпал:)


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