Недавно знакомый дал ссылку на очень неплохую javascript библиотеку для рисования самых разных графиков в канвасе. Называется она Bluff. Ниже немного о ней.
Как использовать
Все графики имеют примерно одинаковый способ инициализации:
// Создаем объект, указав его id и ширину
var g = new Bluff.Line('example', 400);
// Задаем тему и настройки
g.theme_keynote();
g.title = 'My Graph';
// Передаем данные и названия графиков
g.data('Apples', [1, 2, 3, 4, 4, 3]);
g.data('Oranges', [4, 8, 7, 9, 8, 9]);
g.data('Watermelon', [2, 3, 1, 5, 6, 8]);
g.data('Peaches', [9, 9, 10, 8, 7, 9]);
g.labels = {0: '2003', 2: '2004', 4: '2005'};
// Рендерим
g.draw();По умолчанию, соотношение сторон 4:3. Но высоту можно так же задавать и в ручную:
var g = new Bluff.Line('example', '800x300');Текущая версия библиотеки поддерживает следующие виды графиков:
Bluff.AccumulatorBarBluff.AreaBluff.BarBluff.DotBluff.LineBluff.Mini.BarBluff.Mini.PieBluff.Mini.SideBarBluff.NetBluff.PieBluff.SideBarBluff.SideStackedBarBluff.SpiderBluff.StackedAreaBluff.StackedBar
Данных из HTML
Выше был рассмотрен способ передачи данных через массив, однако Bluff так же позволяет вставлять данные из HTML таблиц. Главное удостовериться в том, что тэг <th> выставлен верно. Например,
| Apples | Oranges | Watermelon | Peaches | |
|---|---|---|---|---|
| 1 | 4 | 2 | 9 | |
| 2003 | 2 | 8 | 3 | 9 |
| 3 | 7 | 1 | 10 | |
| 2004 | 4 | 9 | 5 | 8 |
| 4 | 8 | 6 | 7 | |
| 2005 | 3 | 9 | 8 | 9 |
<table id="data">
<caption>Annual Fruit Sales</caption>
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Apples</th>
<th scope="col">Oranges</th>
<th scope="col">Watermelon</th>
<th scope="col">Peaches</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row"></th>
<td>1</td> <td>4</td> <td>2</td> <td>9</td>
</tr>
<tr>
<th scope="row">2003</th>
<td>2</td> <td>8</td> <td>3</td> <td>9</td>
</tr>
<tr>
<th scope="row"></th>
<td>3</td> <td>7</td> <td>1</td> <td>10</td>
</tr>
<tr>
<th scope="row">2004</th>
<td>4</td> <td>9</td> <td>5</td> <td>8</td>
</tr>
<tr>
<th scope="row"></th>
<td>4</td> <td>8</td> <td>6</td> <td>7</td>
</tr>
<tr>
<th scope="row">2005</th>
<td>3</td> <td>9</td> <td>8</td> <td>9</td>
</tr>
</tbody>
</table>
<canvas id="graph" width="300" height="225"></canvas>
<script type="text/javascript">
var g = new Bluff.Line('graph', '300x225');
g.theme_odeo();
g.data_from_table('data');
g.draw();
</script>
<caption>Annual Fruit Sales</caption>
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Apples</th>
<th scope="col">Oranges</th>
<th scope="col">Watermelon</th>
<th scope="col">Peaches</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row"></th>
<td>1</td> <td>4</td> <td>2</td> <td>9</td>
</tr>
<tr>
<th scope="row">2003</th>
<td>2</td> <td>8</td> <td>3</td> <td>9</td>
</tr>
<tr>
<th scope="row"></th>
<td>3</td> <td>7</td> <td>1</td> <td>10</td>
</tr>
<tr>
<th scope="row">2004</th>
<td>4</td> <td>9</td> <td>5</td> <td>8</td>
</tr>
<tr>
<th scope="row"></th>
<td>4</td> <td>8</td> <td>6</td> <td>7</td>
</tr>
<tr>
<th scope="row">2005</th>
<td>3</td> <td>9</td> <td>8</td> <td>9</td>
</tr>
</tbody>
</table>
<canvas id="graph" width="300" height="225"></canvas>
<script type="text/javascript">
var g = new Bluff.Line('graph', '300x225');
g.theme_odeo();
g.data_from_table('data');
g.draw();
</script>
Темы
Что такое тема это вполне понятно. Тема должна быть выставлена до задания прочих цветовых опций и задания данных. Тему можно как задать самому, так и использовать стандартную. Чтобы задать тему в ручную, необходимо задать значения для
colors, marker_color, font_color и выбрать цвет бэкграунда morebackground_colors:g.set_theme({
colors: ['#202020', 'white', '#a21764', '#8ab438',
'#999999', '#3a5b87', 'black'],
marker_color: '#aea9a9',
font_color: 'black',
background_colors: ['#ff47a4', '#ff1f81']
});А ниже список доступных тем по умолчанию:
g.theme_keynote(); g.theme_37signals(); g.theme_rails_keynote(); g.theme_odeo(); g.theme_pastel(); g.theme_greyscale();
Всплывающие подсказки
Некоторые из графиков поддерживают использование всплывающих подсказок. Их внешний вид можно задать с помощью css, так как показано ниже:
Чтобы включить подсказки задайте следующий параметр
g.tooltips = true , когда создаете график. Подсказки работают со следующими типами графиков:Bluff.AccumulatorBarBluff.BarBluff.LineBluff.Mini.BarBluff.Mini.SideBarBluff.SideBarBluff.SideStackedBarBluff.StackedBar
Вот такая неплохая либа.
Комментариев нет:
Отправить комментарий