Обзор
Визуальное представление дерева данных, где каждый узел может иметь ноль или более дочерних узлов и одного родительского узла (за исключением корня, у которого нет родителей). Каждый узел отображается в виде прямоугольника, размер и цвет которого соответствуют назначенным вами значениям. Размеры и цвета оцениваются относительно всех остальных узлов графа. Вы можете указать, сколько уровней будет отображаться одновременно, а также, при необходимости, отображать более глубокие уровни в виде подсказок. Если узел является конечным узлом, вы можете указать размер и цвет; если это не лист, он будет отображаться как ограничивающая рамка для листовых узлов. Поведение по умолчанию — перемещение вниз по дереву, когда пользователь щелкает левой кнопкой мыши узел, и перемещение обратно вверх по дереву, когда пользователь щелкает график правой кнопкой мыши.
Общий размер графика определяется размером содержащего его элемента, который вы вставляете на свою страницу. Если у вас есть листовые узлы с именами, слишком длинными для отображения, имя будет сокращено до многоточия (...).
Пример
<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+) |  Запускается, когда пользователь перемещается глубже в дерево. Триггер по умолчанию — щелчок. Его можно настроить с помощью   Свойства: нет   | 
Политика данных
Весь код и данные обрабатываются и отображаются в браузере. Никакие данные не отправляются ни на один сервер.