Обзор
Визуальное представление дерева данных, где каждый узел может иметь ноль или более дочерних узлов и одного родительского узла (за исключением корня, у которого нет родителей). Каждый узел отображается в виде прямоугольника, размер и цвет которого соответствуют назначенным вами значениям. Размеры и цвета оцениваются относительно всех остальных узлов графа. Вы можете указать, сколько уровней будет отображаться одновременно, а также, при необходимости, отображать более глубокие уровни в виде подсказок. Если узел является конечным узлом, вы можете указать размер и цвет; если это не лист, он будет отображаться как ограничивающая рамка для листовых узлов. Поведение по умолчанию — перемещение вниз по дереву, когда пользователь щелкает левой кнопкой мыши узел, и перемещение обратно вверх по дереву, когда пользователь щелкает график правой кнопкой мыши.
Общий размер графика определяется размером содержащего его элемента, который вы вставляете на свою страницу. Если у вас есть листовые узлы с именами, слишком длинными для отображения, имя будет сокращено до многоточия (...).
Пример
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['treemap']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Location', 'Parent', 'Market trade volume (size)', 'Market increase/decrease (color)'],
['Global', null, 0, 0],
['America', 'Global', 0, 0],
['Europe', 'Global', 0, 0],
['Asia', 'Global', 0, 0],
['Australia', 'Global', 0, 0],
['Africa', 'Global', 0, 0],
['Brazil', 'America', 11, 10],
['USA', 'America', 52, 31],
['Mexico', 'America', 24, 12],
['Canada', 'America', 16, -23],
['France', 'Europe', 42, -11],
['Germany', 'Europe', 31, -2],
['Sweden', 'Europe', 22, -13],
['Italy', 'Europe', 17, 4],
['UK', 'Europe', 21, -5],
['China', 'Asia', 36, 4],
['Japan', 'Asia', 20, -12],
['India', 'Asia', 40, 63],
['Laos', 'Asia', 4, 34],
['Mongolia', 'Asia', 1, -5],
['Israel', 'Asia', 12, 24],
['Iran', 'Asia', 18, 13],
['Pakistan', 'Asia', 11, -52],
['Egypt', 'Africa', 21, 0],
['S. Africa', 'Africa', 30, 43],
['Sudan', 'Africa', 12, 2],
['Congo', 'Africa', 10, 12],
['Zaire', 'Africa', 8, 10]
]);
tree = new google.visualization.TreeMap(document.getElementById('chart_div'));
tree.draw(data, {
minColor: '#f00',
midColor: '#ddd',
maxColor: '#0d0',
headerHeight: 15,
fontColor: 'black',
showScale: true
});
}
</script>
</head>
<body>
<div id="chart_div" style="width: 900px; height: 500px;"></div>
</body>
</html>
Основные моменты
Вы можете указать, должны ли элементы выделяться, и установить определенные цвета для определенных элементов, которые будут использоваться в этом случае. Чтобы включить подсветку, установите highlightOnMouseOver:true (для версии 49 или более ранней) или enableHighlight: true (для версии 50+). Отсюда вы можете установить цвета для выделения элементов, используя различные параметры HighlightColor .
var options = { // For v49 or before
highlightOnMouseOver: true,
maxDepth: 1,
maxPostDepth: 2,
minHighlightColor: '#8c6bb1',
midHighlightColor: '#9ebcda',
maxHighlightColor: '#edf8fb',
minColor: '#009688',
midColor: '#f7f7f7',
maxColor: '#ee8100',
headerHeight: 15,
showScale: true,
height: 500,
useWeightedAverageForAggregation: true
};
var optionsV50 = { // For v50+
enableHighlight: true,
maxDepth: 1,
maxPostDepth: 2,
minHighlightColor: '#8c6bb1',
midHighlightColor: '#9ebcda',
maxHighlightColor: '#edf8fb',
minColor: '#009688',
midColor: '#f7f7f7',
maxColor: '#ee8100',
headerHeight: 15,
showScale: true,
height: 500,
useWeightedAverageForAggregation: true,
// Use click to highlight and double-click to drill down.
eventsConfig: {
highlight: ['click'],
unhighlight: ['mouseout'],
rollup: ['contextmenu'],
drilldown: ['dblclick'],
}
};
Подсказки
По умолчанию всплывающие подсказки древовидной карты являются базовыми и показывают метку ячейки древовидной карты. Это полезно, когда ячейки слишком малы для размещения меток, но вы можете настроить их дополнительно, как описано в этом разделе.
Всплывающие подсказки древовидной карты настраиваются иначе, чем другие диаграммы: вы определяете функцию, а затем устанавливаете для этой функции generateTooltip . Вот простой пример:
На приведенной выше диаграмме мы определяем функцию под названием showStaticTooltip , которая просто возвращает строку с HTML-кодом, который будет отображаться всякий раз, когда пользователь наводит курсор на ячейку древовидной карты. Попробуй это! Код для его создания выглядит следующим образом:
var options = {
minColor: '#e7711c',
midColor: '#fff',
maxColor: '#4374e0',
showScale: true,
generateTooltip: showStaticTooltip
};
tree.draw(data, options);
function showStaticTooltip(row, size, value) {
return '<div style="background:#fd9; padding:10px; border-style:solid">' +
'Read more about the <a href="http://en.wikipedia.org/wiki/Kingdom_(biology)">kingdoms of life</a>.</div>';
}
generateTooltip может представлять собой любой JavaScript, который вам нравится. Обычно вам нужны всплывающие подсказки, которые различаются в зависимости от значений данных. В следующем примере показано, как получить доступ к каждому полю в таблице данных.
Если вы наведете курсор на ячейки в древовидной карте выше, вы увидите разные всплывающие подсказки для каждой ячейки. Все функции подсказки древовидной карты принимают три значения: row , size и value .
-
row: строка ячейки из таблицы данных -
size: сумма значений (столбец 3) этой ячейки и всех ее дочерних элементов. -
value: цвет ячейки, выраженный числом от 0 до 1.
В showFullTooltip строка, которую мы возвращаем, представляет собой HTML-поле из пяти строк:
- В строке 1 показана соответствующая строка из таблицы данных, при этом широко используется
data.getValue. - Строка 2 сообщает вам, что это за строка, и это всего лишь параметр
row. - В строке 3 выводится информация из столбца 3 таблицы данных: сумма значений столбца 3 из этой строки плюс значения потомков.
- В строке 4 представлена информация из столбца 4 таблицы данных. Это значение, но выраженное в виде числа от 0 до 1, соответствующего цвету ячейки.
var options = {
minColor: '#e7711c',
midColor: '#fff',
maxColor: '#4374e0',
showScale: true,
generateTooltip: showFullTooltip
};
tree.draw(data, options);
function showFullTooltip(row, size, value) {
return '<div style="background:#fd9; padding:10px; border-style:solid">' +
'<span style="font-family:Courier"><b>' + data.getValue(row, 0) +
'</b>, ' + data.getValue(row, 1) + ', ' + data.getValue(row, 2) +
', ' + data.getValue(row, 3) + '</span><br>' +
'Datatable row: ' + row + '<br>' +
data.getColumnLabel(2) +
' (total value of this cell and its children): ' + size + '<br>' +
data.getColumnLabel(3) + ': ' + value + ' </div>';
}
}
Загрузка
Имя пакета google.charts.load — "treemap" .
google.charts.load("current", {packages: ["treemap"]});
Имя класса визуализации — google.visualization.TreeMap .
var visualization = new google.visualization.TreeMap(container);
Формат данных
Каждая строка в таблице данных описывает один узел (прямоугольник на графике). Каждый узел (кроме корневого узла) имеет один родительский узел. Каждый узел имеет размер и цвет в соответствии с его значениями относительно других узлов, отображаемых в данный момент.
Таблица данных должна иметь четыре столбца в следующем формате:
- Столбец 0 – [ строка ] Идентификатор этого узла. Это может быть любая допустимая строка JavaScript, включая пробелы, и любой длины, которую может содержать строка. Это значение отображается как заголовок узла.
- Столбец 1 — [ строка ] — идентификатор родительского узла. Если это корневой узел, оставьте это поле пустым. Для каждой карты дерева разрешен только один корень.
- Столбец 2 — [ число ] — Размер узла. Допускается любое положительное значение. Это значение определяет размер узла, вычисляемый относительно всех других узлов, отображаемых в данный момент. Для нелистовых узлов это значение игнорируется и рассчитывается на основе размера всех его дочерних узлов.
- Столбец 3 — [ необязательно , число ] — необязательное значение, используемое для расчета цвета для этого узла. Допускается любое значение, положительное или отрицательное. Значение цвета сначала пересчитывается по шкале от
minColorValueдоmaxColorValue, а затем узлу присваивается цвет из градиента междуminColorиmaxColor.
Параметры конфигурации
| Имя | |
|---|---|
| EnableHighlight (для v50+) | Определяет, должны ли элементы отображать выделенные эффекты. Триггер по умолчанию — при наведении курсора мыши. Триггер можно настроить с помощью Тип: логический По умолчанию: ложь |
| eventConfig (для v50+) | Конфигурация событий для запуска взаимодействия с древовидной картой. Формат для настройки взаимодействия:
eventsConfig: {
interaction1: undefined, // or missing
interaction2: [], // disable
interaction3: [
'mouse_event',
'optional_key1',
'optional_key2',
'optional_key3',
'optional_key4'
],
...,
}
Если массив конфигурации не определен или отсутствует для взаимодействия, будет использоваться значение по умолчанию . Если конфиг представляет собой пустой массив, взаимодействие будет отключено. Для корректной конфигурации необходимо указать mouse_event , которое должно быть поддерживаемым событием мыши. Тогда вы можете иметь до четырех дополнительных ключевых модификаторов.
Пример использования Control+Shift+Right_Click для перехода вверх по дереву: { rollup: ['contextmenu', 'ctrlKey', 'shiftKey'] } Тип: объект По умолчанию:
{
highlight: ['mouseover'],
unhighlight: ['mouseout'],
rollup: ['contextmenu'], // right-click
drilldown: ['click']
}
|
| Цвет шрифта | Цвет текста. Укажите значение цвета HTML. Тип: строка По умолчанию: #ffffff |
| семейство шрифтов | Семейство шрифтов, используемое для всего текста. Тип: строка По умолчанию: авто |
| размер шрифта | Размер шрифта всего текста в пунктах. Тип: номер По умолчанию: 12 |
| сила IFrame | Рисует диаграмму внутри встроенного фрейма. (Обратите внимание, что в IE8 этот параметр игнорируется; все диаграммы IE8 рисуются в i-кадрах.) Тип: логический По умолчанию: ложь |
| заголовокЦвет | Цвет раздела заголовка для каждого узла. Укажите значение цвета HTML. Тип: строка По умолчанию: #988f86. |
| высота заголовка | Высота раздела заголовка для каждого узла в пикселях (может быть равна нулю). Введите номер По умолчанию: 0 |
| заголовокHighlightColor | Цвет заголовка узла, над которым наведен курсор. Укажите значение цвета HTML или ноль; если значение равно нулю, это значение будет Тип: строка По умолчанию: ноль |
| ВыделитеOnMouseOver (устарело для версии 50+) | Устарело для v50+. Для версии 50 и более поздних используйте Тип: логический По умолчанию: ложь |
| подсказкаНепрозрачность | Когда Тип: номер По умолчанию: 0,0 |
| МаксКолор | Цвет прямоугольника со значением столбца 3 Тип: строка По умолчанию: #00dd00 |
| Максимальная глубина | Максимальное количество уровней узлов, отображаемых в текущем представлении. Уровни будут сглажены в текущей плоскости. Если в вашем дереве больше уровней, вам придется подняться или опуститься, чтобы увидеть их. Вы также можете увидеть уровни Тип: номер По умолчанию: 1 |
| maxHighlightColor | Цвет выделения, который будет использоваться для узла с наибольшим значением в столбце 3. Укажите значение цвета HTML или нулевое значение; Если значение равно нулю, это значение будет значением Тип: строка По умолчанию: ноль |
| МаксПостДепт | Сколько уровней узлов за пределами Тип: номер По умолчанию: 0 |
| Максколорвалуе | Максимальное значение, разрешенное в столбце 3. Все значения, превышающие это значение, будут обрезаны до этого значения. Если установлено значение null, ему будет присвоено максимальное значение в столбце. Тип: номер По умолчанию: ноль |
| мидколор | Цвет прямоугольника со значением столбца 3, находящимся посередине между Тип: строка По умолчанию: #000000 |
| MidHighlightColor | Цвет выделения, который будет использоваться для узла со значением столбца 3 рядом с медианой Тип: строка По умолчанию: ноль |
| минколор | Цвет прямоугольника со значением Тип: строка По умолчанию: #dd0000 |
| minHighlightColor | Цвет выделения, используемый для узла со значением столбца 3, ближайшим к Тип: строка По умолчанию: ноль |
| минколорвалуе | Минимальное значение, разрешенное в столбце 3. Все значения меньше этого значения будут обрезаны до этого значения. Если установлено значение null, оно будет рассчитано как минимальное значение в столбце. Тип: номер По умолчанию: ноль |
| noColor | Цвет, используемый для прямоугольника, когда узел не имеет значения для столбца 3 и этот узел является листом (или содержит только листья). Укажите значение цвета HTML. Тип: строка По умолчанию: #000000 |
| noHighlightColor | Цвет, используемый для прямоугольника цвета «нет», когда он выделен. Укажите значение цвета HTML или ноль; если значение равно нулю, это будет значение Тип: строка По умолчанию: ноль |
| шоуМасштаб | Показывать ли шкалу цветового градиента от Тип: логический По умолчанию: ложь |
| Показать подсказки | Показывать ли всплывающие подсказки. Тип: логический По умолчанию: правда |
| текстовый стиль | Объект, определяющий стиль текста для определенных диаграмм, в области содержимого которых есть текст, например в древовидной карте. Объект имеет следующий формат:
{ color: <string>,
fontName: <string>,
fontSize: <number>,
bold: <boolean>,
italic: <boolean> }
Тип: объект По умолчанию: {color: 'black', fontName: <global-font-name>, fontSize: <global-font-size>} |
| заголовок | Текст для отображения над диаграммой. Тип: строка По умолчанию: без названия |
| заголовокTextStyle | Объект, определяющий стиль текста заголовка. Объект имеет следующий формат:
{ color: <string>,
fontName: <string>,
fontSize: <number>,
bold: <boolean>,
italic: <boolean> }
Тип: объект По умолчанию: {color: 'black', fontName: <global-font-name>, fontSize: <global-font-size>} |
| useWeightedAverageForAggregation | Использовать ли средневзвешенные значения для агрегирования. Тип: логический По умолчанию: ложь |
Методы
| Метод | |
|---|---|
draw(data, options) | Рисует диаграмму. Тип возврата: нет |
getEventsConfig() (for v50+) | Возвращает текущую конфигурацию взаимодействия. Это можно использовать для проверки параметра конфигурации Тип возвращаемого значения: Объект
{ // An empty array (i.e. []) means the interaction is disabled.
highlight: string[],
unhighlight: string[],
rollup: string[],
drilldown: string[] } |
getSelection() | Стандартная реализация Тип возвращаемого значения: Массив элементов выбора. |
setSelection() | Стандартная реализация Тип возврата: нет |
goUpAndDraw() | Поднимите дерево на один уровень вверх и перерисуйте его. Не выдает ошибку, если узел является корневым узлом. Это запускается автоматически, когда пользователь щелкает правой кнопкой мыши узел. Тип возврата: нет |
getMaxPossibleDepth() | Возвращает максимально возможную глубину текущего представления. Тип возврата: число |
clearChart() | Очищает диаграмму и освобождает все выделенные ей ресурсы. Тип возврата: нет |
События
eventsConfig для получения информации о настраиваемых триггерах событий.| Имя | |
|---|---|
onmouseover | Запускается, когда пользователь наводит указатель мыши на узел. Обработчику событий передается индекс строки соответствующей записи в таблице данных. Свойства: строка |
highlight (for v50+) | Запускается, когда пользователь выделяет узел. Триггер по умолчанию — наведение курсора мыши. Его можно настроить с помощью Свойства: строка |
onmouseout | Вызывается, когда пользователь уводит указатель мыши за пределы узла. Обработчику событий передается индекс строки соответствующей записи в таблице данных. Свойства: строка |
unhighlight (for v50+) | Вызывается, когда пользователь снимает выделение с узла. Триггер по умолчанию — mouseout. Его можно настроить с помощью Свойства: строка |
ready | Вызывается, когда диаграмма готова к вызову внешних методов. Если вы хотите взаимодействовать с диаграммой и вызывать методы после ее рисования, вам следует настроить прослушиватель этого события до вызова метода Свойства: Нет |
rollup | Запускается, когда пользователь возвращается вверх по дереву. Триггер по умолчанию — щелчок правой кнопкой мыши. Его можно настроить с помощью Свойства: строка |
select | Запускается, когда пользователь детализирует или сворачивает узел. Также запускается при вызове метода Свойства: нет |
drilldown (for v50+) | Запускается, когда пользователь перемещается глубже в дерево. Триггер по умолчанию — щелчок. Его можно настроить с помощью Свойства: нет |
Политика данных
Весь код и данные обрабатываются и отображаются в браузере. Никакие данные не отправляются ни на один сервер.