Текстовые диаграммы
Расширение позволяет встраивать в тексты статей текстовые столбиковые диаграммы одномерных массивов числовых данных. Использование расширения возможно при наличии файлов x_diag.api, x_diag.php, x_diag.txt, которые не входят в базовую комплектацию системы.
За реализацию действий по выводу текстовых диаграмм ответственна функция vdm() - вывод диаграммы массива.
Функции vdm передаются три параметра:
массив числовых данных;
порядок сортировки (0 или 1), по умолчанию - 0;
число пикселей столбика максимального значения, по умолчанию - 300.
Разметка
~x=massiv("a:200 b:400 c:700 d:300 e:500 f:600 g:400")@vdm(x)
Вывод
|
|||||
a | 200 |
6,45% |
28,6% |
||
b | 400 |
12,9% |
57,1% |
||
c | 700 |
22,6% |
100% |
||
d | 300 |
9,68% |
42,9% |
||
e | 500 |
16,1% |
71,4% |
||
f | 600 |
19,4% |
85,7% |
||
g | 400 |
12,9% |
57,1% |
||
3100 |
100% |
Вывод представляет собой таблицу, которая включает:
столбец имён индексов массива;
столбец числовых значений массива;
столбец долей значений каждого элемента по отношению к их сумме (%);
столбец долей значений каждого элемента по отношению к максимуму (%);
столбец, заполненный столбиками относительной величины значений по отношению к максимуму.
Столбики синего цвета - значения меньше среднего арифметического, зелёного - больше среднего арифметического, красного - максимальное значение.
Данные таблицы-диаграммы могут быть упорядочены по убыванию значений.
Разметка
@vdm(x,1)Вывод
|
|||||
c | 700 |
22,6% |
100% |
||
f | 600 |
19,4% |
85,7% |
||
e | 500 |
16,1% |
71,4% |
||
g | 400 |
12,9% |
57,1% |
||
b | 400 |
12,9% |
57,1% |
||
d | 300 |
9,68% |
42,9% |
||
a | 200 |
6,45% |
28,6% |
||
3100 |
100% |
Третий параметр функции позволяет изменить пропорции столбиков диаграммы.
Разметка
@vdm(x,0,500)Вывод
|
|||||
a | 200 |
6,45% |
28,6% |
||
b | 400 |
12,9% |
57,1% |
||
c | 700 |
22,6% |
100% |
||
d | 300 |
9,68% |
42,9% |
||
e | 500 |
16,1% |
71,4% |
||
f | 600 |
19,4% |
85,7% |
||
g | 400 |
12,9% |
57,1% |
||
3100 |
100% |
Для функции vdm строить массив заранее не обязательно. Вместо массива можно просто передать строку со списком слов в формате ключ:значение, а функция сама преобразует её в массив.
Разметка
@vdm("x1:300 x2:200 x3:400 x4:800 x5:500 x6:600 x7:250")Вывод
|
|||||
x1 | 300 |
9,84% |
37,5% |
||
x2 | 200 |
6,56% |
25% |
||
x3 | 400 |
13,1% |
50% |
||
x4 | 800 |
26,2% |
100% |
||
x5 | 500 |
16,4% |
62,5% |
||
x6 | 600 |
19,7% |
75% |
||
x7 | 250 |
8,20% |
31,3% |
||
3050 |
100% |
Данные массива могут быть предварительно получены из секций структурированных файлов или из отдельных неструктурированных файлов. Подробнее см. Массивы Ключ/Значение, Массивы структурированных записей.