Группирование данных в элементах управления диаграммы
В процессе группирования последовательность точек данных в ряде заменяется одной сгруппированной точкой.Значения X и Y для каждой сгруппированной точки вычисляются по указанной формуле в сочетании с исходными значениями каждой используемой точки.
Группирование особенно эффективно для большого количества точек данных и упрощает выявление трендов на диаграмме.
Перед группированием данных ряда убедитесь, что значения ряда отсортированы по возрастанию значения X.Дополнительные сведения о сортировке см. в разделе Сортировка данных.
Формулы группирования
Группирование выполняется с применением объекта DataManipulator.Возможно группирование двух типов: по метке оси и по интервалу.Если нужно обрабатывать пустые точки как точки с нулевыми значениями, установите свойство DataManipulator.IgnoreEmptyPoints в значение false.
Во время вызова методов Group и GroupByAxisLabel необходимо указать формулу.Можно указать отдельную формулу для некоторых или для всех значений Y точки данных.Необходимо указать хотя бы одну формулу (в этом случае она будет использоваться для вычисления всех значений Y для точки).
Параметр формулы имеет следующий формат:
"formula[, value:formula, [value:formula[,...]]]"
Здесь formula представляет имя формулы, value — имя значения Y для точки данных, к которому применяется формула (например, Y2).
Если использовать в процедуре группирования строку формулы "AVE, X:CENTER, Y2:MAX", получится следующий результат:
сгруппированные точки будут помещены в центр своих интервалов;
для всех значений Y2 сгруппированных точек будет использоваться максимальное значение Y2 среди всех входных точек;
будет вычислено среднее для всех значений Y.
В следующей таблице приводится список этих формул и описание выполняемых ими действий.Учтите, что формулой по умолчанию для значений X (которая применяется, если не указана ни одна формула), является формула FIRST.Также заметьте, что формулы для значений X просто определяют расположение результирующих точек данных для указанного интервала (например, по левой или правой границе интервала или в центре интервала).
Примечание
По умолчанию для вычисления значений X применяется формула FIRST.
Формула |
Описание |
Используется для значения X |
---|---|---|
AVE |
Среднее значение для всех точек данных в заданном интервале. |
Нет. |
MAX |
Максимальное значение среди всех точек данных в заданном интервале. |
Нет. |
MIN |
Минимальное значение среди всех точек данных в заданном интервале. |
Нет. |
SUM |
Общее значение всех точек данных в заданном интервале. |
Нет. |
LAST |
Последнее значение среди всех точек данных в заданном интервале. |
Да.Новые точки данных размещаются на крайней справа границе среди всех интервалов. |
FIRST (по умолчанию) |
Первое значение среди всех точек данных в заданном интервале. |
Да.Новые точки данных размещаются на крайней слева границе среди всех интервалов. |
HiLoOpCl |
Вычисляет самое большое значение, самое маленькое значение, открывающее значение и закрывающее значение.Открывающее значение представляет первое значение на интервале, а закрывающее — последнее значение на интервале.
Примечание
Эта формула возвращает четыре значения Y, и ее следует использовать только для типов диаграмм, которые используют четыре значения Y (например,диаграмма «японские свечи»).
|
Нет. |
HiLo |
Самое большое и самое маленькое значение среди всех точек данных в заданном интервале.
Примечание
Эта формула возвращает два значения Y, и ее следует использовать только для типов диаграмм, которые используют два значения Y (например,пузырьковые диаграммы).
|
Нет. |
Count |
Количество точек данных, сгруппированных в одну точку. |
Нет. |
DistinctCount |
Количество точек данных, сгруппированных в одну точку.Точки данных, у которых совпадают основные значения Y, считаются одной точкой. |
Нет. |
Variance |
Дисперсия между всеми точками данных в заданном интервале. |
Нет. |
Deviation |
Отклонение между всеми точками данных на заданном интервале. |
Нет. |
Center |
Отклонение между всеми точками данных на заданном интервале. |
Да.Новые точки данных помещаются в центрах интервалов. |
Группирование по интервалу
Для группирования по интервалу используется метод Group.Этот метод разбивает точки данных ряда на интервалы по значениям X, а затем заменяет каждый интервал единственной точкой.
В следующем коде показано группирование по кварталам и сохранение результирующего ряда в ряд с именем ResultSeries.
' Group points by year quarters.
Chart1.DataManipulator.Group("AVE", 3, IntervalType.Months, "MySeries", "ResultSeries")
// Group points by year quarters.
Chart1.DataManipulator.Group("AVE", 3, IntervalType.Months, "MySeries", "ResultSeries");
Группирование по меткам оси
Для группирования по меткам оси используется метод GroupByAxisLabel.Этот метод группирует все точки данных с одинаковым значением свойства AxisLabel и вычисляет результирующее значение Y по указанной формуле.
Примечание
В результате этой операции группирования точки данных сортируются по значению свойства AxisLabel в порядке возрастания.
В следующем примере кода группируются точки данных, представляющие отдельные значения продаж.В примере предполагается, что значения X точек данных привязаны к строке, где хранятся имена менеджеров по продажам, причем каждое имя хранится в свойстве AxisLabel.В примере складываются суммы продаж для каждого менеджера по продажам, а итоговые данные по менеджерам выводятся во входной ряд (выходной ряд по умолчанию).
' Group by salesperson name, and display total sale amounts.
Chart1.DataManipulator.GroupByAxisLabel("SUM", "GoldMedals")
// Group by salesperson name, and display total sale amounts.
Chart1.DataManipulator.GroupByAxisLabel("SUM", "GoldMedals");
Группирование нескольких рядов
Чтобы сгруппировать несколько рядов, укажите список имен рядов с разделителями-запятыми в методе Group или GroupByAxisLabel.
Предупреждение
Если указываются выходные ряды, то их число должно совпадать с числом входных рядов.В противном случае метод создает исключение.
Если указать в качестве входного ряда «*», то метод группирует все ряды из коллекции Chart.Series.
В этом примере группируются два ряда: MySeries1 и MySeries2.
' Group two series by week, using averaged Y values.
Chart1.DataManipulator.Group("AVE", 1, IntervalType.Weeks, "MySeries1, MySeries2")
// Group two series by week, using averaged Y values.
Chart1.DataManipulator.Group("AVE", 1, IntervalType.Weeks, "MySeries1, MySeries2");
См. также
Ссылки
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting