В этом примере автор использовал базу данных сотрудников для получения данных о посещаемости. Эти данные, полученные из базы данных, будут отображены на графике, созданном с помощью Google Charts API. График посещений будет отображаться с помощью 2 типов диаграмм: круговой и столбчатой.
На круговой диаграмме будет отображаться процент присутствующих и отсутствующих сотрудников. В столбчатой диаграмме вместо процентного значения будет отображаться количество присутствующих и отсутствующих сотрудников. Автор статьи использовал пользовательские цвета, чтобы отобразить разницу между данными о посещаемости.
HTML для отображения графика посещаемости с помощью Google Charts
В этой части статьи мы рассмотрим структуру HTML-кода страницы на которой мы разместим примеры графиков. В нашем примере мы создадим целевые элементы для размещения в них графиков. Идентификаторы целевых элементов будут указаны в скрипте построения диаграмм. Используя их, сгенерированные в скрипте диаграммы будут отображаться внутри целевых элементов.
Google Chart API на этой странице будет подключен в виде JS-скрипта. Этот API имеет зависимость от Google visualization API. На основе спецификации Google код в подключаемом JS-файле будет использоваться для создания различных типов диаграмм.
HTML
Скрипт для инициализации API Google Charts
Круговая и столбчатая диаграммы в нашем примере создаются для отображения отчета о посещаемости сотрудников в графическом формате. Первым делом инициализируем Google chart API и создаем экземпляр диаграммы. Экземпляр диаграммы при этом создается со значениями параметров по-умолчанию. Это, например, касается заголовка диаграммы, подписей для осей x и y, а также цвета и других параметров. Ранее мы создавали экземпляр графика со значениями по-умолчанию, когда генерировали динамическую диаграмму с помощью Charts.js.
Круговая диаграмма
Код скрипта, представленный ниже, устанавливает параметры для заголовка и настраивает цвета секторов круговой диаграммы. Указание цветов не обязательно. Если цвета не указаны, то будут использоваться случайные цвета, выбранные по-умолчанию. Тип требуемой диаграммы нужно передать в качестве аргументов. В данном коде экземпляр диаграммы Google создается путем вызова соответствующих методов класса visualization. При создании этого графика в качестве аргумента передается целевой HTML-элемент, в котором он будет отрисован. Данные для его построения мы получаем из БД и передаем в объект DataTable.
JavaScript
Столбчатая диаграмма
Скрипт для отображения столбчатой диаграммы будет немного отличаться от сценария круговой диаграммы. Коды цветов для столбцов передаются вместе с данными, а не устанавливаются в массиве параметров. Объект, представляющий столбчатую диаграмму создается путем вызова методов класса google.visualization.DataView. Объект DataTable передается методу построения диаграммы, чтобы отразить на ней данные о посещаемости.
JavaScript
PHP код для получения данных о посещаемости из базы данных
Представленный ниже PHP-код выполняет запрос (SELECT) к БД для получения данных о посещениях. В этом запросе автор статьи использовал выражение MySQL case для вычисления текстовых значений на основе результатов запроса. В БД посещений – присутствие обозначается единицей (1), а отсутствие единицей с отрицательным знаком (-1).
Псевдоним значения присутствия (Present/Absent) используется для подписи, а present_absent_count – для значения подсчета посещений. Эти данные, сформированные в виде массива PHP загружаются в объект DataTable при инициализации экземпляра диаграммы для визуализации графика посещаемости.
PHP
Запросы для создания базы данных MySQL
Следующие запросы служат для создания таблицы employee в базе данных для хранения данных о сотрудниках. Также в ней хранится информация о присутствии на рабочем месте.
SQL
График присутствия, сгенерированный с использованием Google диаграмм
На представленном ниже скриншоте показан результат: график присутствия сотрудников в виде круговой и столбчатой диаграмм, созданных с использованием API Google Charts. При наведении курсора на сегменты диаграммы и столбцы графика информация о посещаемости будет показываться в тултипе.
Оригинал статьи: How to Render Attendance Graph using Google Charts
Перевод: Земсков Матвей