95 lines
8.9 KiB
Markdown
95 lines
8.9 KiB
Markdown
|
---
|
|||
|
title: Bar Graph Project
|
|||
|
localeTitle: Графический проект
|
|||
|
---
|
|||
|
## Наша цель - изучить основы данных
|
|||
|
|
|||
|
Визуализация с использованием D3 через этот проект.
|
|||
|
|
|||
|
![скриншот 2016-05-17 в 5 02 41](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d46c5c1c76bd03b9e85d450da02695d3f07c75c.png)
|
|||
|
|
|||
|
## Что такое D3.js?
|
|||
|
|
|||
|
Для тех, кто не знаком с D3, D3.js - это библиотека JavaScript для управления документами на основе данных. D3 помогает вам воплощать данные в жизнь с помощью HTML, SVG и CSS.
|
|||
|
|
|||
|
D3.js помогает вам прикрепить свои данные к элементам DOM (Document Object Model). Затем вы можете использовать CSS3, HTML и / или SVG для демонстрации этих данных. Наконец, вы можете сделать данные интерактивными с помощью преобразований и переходов, управляемых данными D3.js.
|
|||
|
|
|||
|
## Объяснение проекта:
|
|||
|
|
|||
|
### Сценарий:
|
|||
|
|
|||
|
Там есть класс студентов онлайн, взаимодействующих с различными темами темы, и дает викторину по этим темам.
|
|||
|
|
|||
|
Есть 15 тем, и по каждой теме у нас есть несколько учеников, которые прошли викторину и забили в трех категориях: Низкий, Средний и Высокий
|
|||
|
|
|||
|
### Например (данные):
|
|||
|
|
|||
|
Тема: «1», низкая: 4, середина: 13, высокая: 18
|
|||
|
|
|||
|
Тема: «2», низкая: 11, середина: 12, высокая: 6
|
|||
|
|
|||
|
Тема: «3», низкая: 12, середина: 24, высокая: 6 и так далее.
|
|||
|
|
|||
|
Обратите внимание, что в теме 1 есть ученик `4 + 13 + 8 = 35` и тема 2 имеет `11+12+6 = 29` учеников, а тема 3 имеет 42 ученика и так далее.
|
|||
|
|
|||
|
Мы хотим сделать интерактивные диаграммы Bar и Pie. Например, наведите курсор мыши на один из столбцов, соответственно изменив круговую диаграмму и наоборот.
|
|||
|
|
|||
|
С интерактивной комбинацией гистограммы и круговой диаграммы, где на диаграмме отображается количество студентов, которые взаимодействовали с определенной темой (взята на викторине) и круговая диаграмма, показывающая классификацию результатов обучения студентов в категориях «низкий, средний, высокий», мы можем визуализировать наши данные и получить от них больше данных.
|
|||
|
|
|||
|
## Советы и ресурсы:
|
|||
|
|
|||
|
### Пошаговые инструкции:
|
|||
|
|
|||
|
[**D3 Введение. Здесь**](https://d3js.org) вы можете узнать о выборе, динамических свойствах и переходах в D3.js.
|
|||
|
|
|||
|
* В основной функции javascript напишите функцию для обработки гистограммы (гистограмма). Гистограмма покажет общее количество студентов, которые выполнили викторину (взаимодействовали с этой темой) по 15 темам.
|
|||
|
|
|||
|
* (Вот [**учебник, в**](https://bost.ocks.org/mike/bar/) котором вы можете узнать, как сделать гистограмму с использованием библиотеки D3 JavaScript. В первом учебном пособии рассказывается, как сделать версию bare-bones в HTML, а затем более полную диаграмму в Scalable Vector Graphics (SVG) и, наконец, анимированные переходы между представлениями.)
|
|||
|
* [Создание SVG для гистограммы](http://codepen.io/SundeepB/pen/CxveH)
|
|||
|
|
|||
|
* Создайте функцию для сопоставления по оси x и добавьте ось x к гистограмме SVG
|
|||
|
|
|||
|
* Создайте функцию для отображения оси Y и создайте полосы для гистограммы, чтобы содержать прямоугольники и метки тем.
|
|||
|
|
|||
|
* Создайте прямоугольники и метки тем
|
|||
|
|
|||
|
* Создайте функцию для обновления баров. Это будет использоваться круговой диаграммой
|
|||
|
|
|||
|
* Напишите функцию для обработки pieChart. - круговая диаграмма будет иметь три среза - низкий, средний и высокий, чтобы представлять баллы.
|
|||
|
|
|||
|
* [**Учебник, в**](http://zeroviscosity.com/d3-js-step-by-step/step-1-a-basic-pie-chart) котором вы можете узнать, как сделать круговую диаграмму, а затем переходы между представлениями и как создать легенду.
|
|||
|
* Создайте svg для круговой диаграммы.
|
|||
|
|
|||
|
* Создайте функцию, чтобы нарисовать дуги кусочков пирога - кусочки пирога будут низкими, средними и высокими
|
|||
|
|
|||
|
* Создайте функцию для вычисления углов среза пирога.
|
|||
|
|
|||
|
* Нарисуйте кусочки пирога.
|
|||
|
|
|||
|
* Создайте функцию для обновления круговой диаграммы. Это будет использоваться гистограммой.
|
|||
|
|
|||
|
* Рассчитайте общую частоту по сегментам для всей темы.
|
|||
|
|
|||
|
* Вычислите общую частоту по состоянию для всего сегмента.
|
|||
|
|
|||
|
|
|||
|
## Результат анализа данных и что мы можем сделать из Визуализации:
|
|||
|
|
|||
|
* Начальная круговая диаграмма показывает совокупную классификацию всех баллов студентов по всей теме в трех категориях: «низкий, средний, высокий»,
|
|||
|
|
|||
|
* Начальная гистограмма, показывающая количество студентов, которые взаимодействовали по этой теме
|
|||
|
|
|||
|
* Любая выбранная категория из круговой диаграммы обновит гистограмму, показывая количество студентов, которые взаимодействовали по различным темам, имеющим оценку, принадлежащую к этой конкретной категории.
|
|||
|
|
|||
|
* Скриншоты ниже показывают наведение мыши на срез «Средний» и «Высокий» срез круговой диаграммы соответственно и для этого конкретного фрагмента, тематических гистограмм и количества учеников.
|
|||
|
|
|||
|
|
|||
|
![скриншот 2016-05-17 в 5 13 53](//discourse-user-assets.s3.amazonaws.com/original/2X/1/106f06d412df6db5b4a421dc4769d22695cbec72.png)
|
|||
|
|
|||
|
![скриншот 2016-05-17 в 5 14:05](//discourse-user-assets.s3.amazonaws.com/original/2X/7/7b23ebe89f74f11090984dbc4dc68212e3beceb3.png)
|
|||
|
|
|||
|
* На любой выбранной панели бар-диаграммы будет отображаться круговая диаграмма, показывающая классификацию всех учеников по этой конкретной теме на три категории: «Низкая», «Средняя» и «Высокая». Снимок экрана ниже показывает наведение мыши на тему 2 и для этой конкретной темы, сколько учеников находится в категории Низкий, Средний и Высокий
|
|||
|
|
|||
|
![скриншот 2016-05-17 в 5 13 26:00](//discourse-user-assets.s3.amazonaws.com/original/2X/7/7bd7c613bdb882f2b7c1f76f9778a1bda3e886dd.png)
|
|||
|
|
|||
|
Ссылки: [1\] Примеры из \[https://d3js.org](https://d3js.org) [2\] D3.js Введение - \[https://www.dashingd3js.com/why-build-with-d3js](https://www.dashingd3js.com/why-build-with-d3js)
|