- PVSM.RU - https://www.pvsm.ru -

jQuery / Morris.js: средство рисования красивых графиков при помощи jQuery и Raphaël

В позавчерашнем выпуске [1] «Mozilla Hacks Weekly» увидал гиперссылку «Morris.js [2]», пошёл по ней, почитал, порадовался — а теперь и вам поведаю.

Morris — это легковесный джаваскрипт (всего-то 3052 байта [3] после миниатюризации) с открытым исходным кодом (распространяемым по упрощённой лицензии BSD), который для работы требует jQuery [4] и Raphaël [5] и строит с их помощью графики на простой сетке горизонтальных линий, наподобие такого:

<img src="http://www.pvsm.ru/images/f23bdf6ff06dda2561e31105e6cb4602.png" alt="[график]"/>

По оси абсцисс откладывается время, по оси ординат — какие-нибудь зависящие от времени значения. (Morris изначально разрабатывался для сайта [6], показывающего общее число автомашин той или иной марки в Великобритании, так что для него естественно, что ось абсцисс — это ось времени.)

Графики реагируют на мышь: вспучиваются точки, соответствующие указанному мышью моменту во времени, и подле них появляются подсказки.

Достоинство скрипта — простота API. Приведённый мною пример создаётся вот таким вызовом:

// поквартальные данные, тонкие линии, цвета их заданы в явном виде Morris.Line({   element: 'quarterly',   data: [     {q: '2009 Q3', a: 100, b: 75},     {q: '2010 Q2', a: 75, b: 50},     {q: '2010 Q3', a: 75, b: 50},     {q: '2011 Q1', a: 50, b: 25},     {q: '2011 Q3', a: 50, b: 25},     {q: '2011 Q4', a: 75, b: 50},     {q: '2012 Q2', a: 100, b: 75}   ],   xkey: 'q',   ykeys: ['a', 'b'],   labels: ['Series A', 'Series B'],   lineColors: ['#167f39','#044c29'],   lineWidth: 2 });

в первоисточнике [2] достаточно подробно — подглядывать в открытый исходник, скорее всего, не потребуется.

Единственное, чего «Моррису», на мой взгляд, недостаёт — так это вертикальных линий, перпендикулярных горизонтальным. Чтобы связь значений из одного и того же времени тотчас явствовала, а не только когда мышою поводить доведётся.

Предвижу также, что для кого-то итог работы «Морриса» покажется чрезмерно простым. Они, впрочем, всегда смогут прибегнуть к помощи gRaphaël [7] и тем создавать несколько более навороченные [8] графики.

Автор: Mithgol


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/jquery/2952

Ссылки в тексте:

[1] позавчерашнем выпуске: http://hacks.mozilla.org/?p=11575

[2] Morris.js: http://oesmith.github.com/morris.js/

[3] 3052 байта: https://raw.github.com/oesmith/morris.js/0.2.2/morris.min.js

[4] jQuery: http://jquery.com/

[5] Raphaël: http://raphaeljs.com/

[6] сайта: http://howmanyleft.co.uk/

[7] gRaphaël: http://g.raphaeljs.com/

[8] несколько более навороченные: http://g.raphaeljs.com/linechart.html