LINUX.ORG.RU

[нуб][js] в чём строить svg-графики?

 ,


0

1

Нужно построить графики. Ну типа mrtg.

Самое просто по API что я нашёл это http://dygraphs.com/, но оно не распарсило время в unix time и подписи к графикам у меня обрубленные получались. При попытке это исправить оказалось что надо уже что-то там дописывать. А я js не владею :(

Кандидат 2: g.raphael. К сожалению по нему офицальных доков не нашёл (не путатать с самим raphael). Но есть какие-то примеры в инете. Как вы думаете, оно стоит изучения?

Google charts меня бы всем устроил, но url api они закрыли (док нет вообще). А вот их js api... уже не смотрел, но я бы предпочёл не садиться на иглу гугла и всё держать на своём сервере.

В общем, продолжаю бродить по http://www.splashnology.com/article/15-awesome-free-javascript-charts/325/ и stackoverflow в поисках ПРОСТОГО в освоении фреймворка для построения графиков. Может кто что подскажет?

Ну и заодно если кто посоветует простой туториал уровня basic по js для нубов я не откажусь.

★★★★★

Вариант 1: написать самому. Вариант 2: стырить у гугла (но там придется ковыряться в обфусцированном JS).

Eddy_Em ☆☆☆☆☆
()

Кто-то из ЛОРовцев писал. Погрепай галерею.

power
()
Ответ на: комментарий от resurtm

Canvas чем не устраивает? Почему именно SVG?

Нет причины. Я просто подумал что СВГ будет проще сохранить в качестве картинки. Возможно я неправильно думаю.

Вот неплохая библиотека на canvas

Гляну, спасибо

Для MSIE6-8 вот это помогает

пусть ишак горит огнём со своими проблемами :). Да и очень редко вижу чтобы им кто-то пользовался.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Я просто подумал что СВГ будет проще сохранить в качестве картинки.

Canvas вроде тоже можно без проблем сохранять как PNG, etc.

google://canvas+toDataURL

resurtm ★★★
()
Ответ на: комментарий от true_admin

Нет причины. Я просто подумал что СВГ будет проще сохранить в качестве картинки. Возможно я неправильно думаю.

Правильно тебе говорят, flot бери.

anonymous
()

Кстати, а как насчет webGL использовать? Можно было бы симпатичные трехмерные графики рисовать...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от tailgunner

А оно обязательно должно работать на клиенте?

Для вебморды желательно потому что, по опыту мртг и какти, перерисовка графиков отнимает много ресурсов.

Вообще нет, не обязательно. Изначально стояла задача просто найти удобное приложение для рисования графиков. Я перебрал всё что можно что имееет биндинги к третьему питону и понял что всё говно (в плане удобство пользования, matplot тоже говно). Я перебрал все либы которые смог найти. В общем, старичок gnuplot нравится гораздо больше всего остального. Но и он говно, у него каждый драйвер работает по-своему. А ещё на моей убунте 12.04 оно очень глючит(valgrind показывает 100500 ошибок) и на выходе даёт битые файлы. Пересобирать лень.

Поэтому пришёл к использованию жаваскрипт. С задачей «ПОСТРОЙ, СУКА, красивые графики по CSV/json» js-либы гораздо лучше справляются. Зацени: http://www.highcharts.com/stock/demo/areaspline Там удобные ползунки. А ещё оно само адаптируется под размер див-а итд итп. И всё это почти без гемора.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Просто графики элементарно рисуются гнуплотом. Но на стороне сервера => интерактивности никакой + куча лишних данных при добавлении новой информации.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от resurtm

Спасибо большое за помощь. Пока всё же остановился на highstock потому что он из каробоки удовлетворил мои самые потаенные и скрытые желания, ммм... :).

true_admin ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

А ещё чтобы их (графики) делал человек который совершенно не разбирается в вопросе.
Тогда они будут не только симпатичные, но и жрать будут под гиг памяти.

winddos ★★★
()
Ответ на: комментарий от winddos

Все браузеры текут, поэтому без обновления страницы, увы, никакой современный интерфейс работать не будет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Не надо нас обманывать!
Текут все, но все текут по разному.

Год назад я тестил простую демку (webgl caves):
- Хромиус постепенно рос до 300мб и далее стопал свой рост.
- Огнелис рос рос рос, и падал после набора 32 битного ограничения.
- Опера (так что была вроде как pre-версией 10.50 с webgl, и почти ничего не умела) как была 100 мегов при старте демки, так и кушала эти 100 мегов.
Не уверен что у оперы все так же хорошо сейчас, но лиса у меня так частенько делает и сейчас.

winddos ★★★
()
Ответ на: комментарий от Eddy_Em

А говорил я вообще про другую вещь, и браузеры тут вообще не причем.
WebGL это незкоуровевое API как и обычный OpenGL.

Профессионал в 3D и OpenGL может сделать на его основе мега-красивую (не PC кризис 2 конечно, но на уровне большинства консольных игр - легко) демку которая ни будет ни течь, не тормозить.
А профессиональный-разработчик-на-яваскрипт вряд ли знающий особенности работы 3D обязательно сделает график в котором будет OVER9000000 полигонов и какой нибудь кривой шейдер найденный в инете.
И который будет адски тормозить.

winddos ★★★
()
Ответ на: комментарий от winddos

Я говорю о том, что ни один браузер не подчищает память от старых неиспользуемых объектов. Например, подгружаете вы новую картинку взамен старой. Старая из памяти не удаляется. Если это - видео 10 кадров в секунду, браузер падает довольно быстро.

Аналогично с динамикой, когда данные получаются из POST-запроса. Все это тоже продолжает храниться в памяти. Хоть в этом случае данных меньше, вряд ли больше недели-другой ваш интерфейс проработает.

В общем, текучесть браузеров - большая проблема.

Опера вообще запрещает XSS, что ограничивает ее возможности.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Я говорю о том, что ни один браузер не подчищает память от старых неиспользуемых объектов. Например, подгружаете вы новую картинку взамен старой. Старая из памяти не удаляется.

Ты либо хреново объясняешь, либо бредишь.
Причем тут вообще картинка и WebGL?

Понимаешь ведь, что WebGL обрабатывается совсем другой частью движка браузера, и каждый кадр там никто не хранит, ну может огнелис и падал потому что хранил (зачем?).

http://webglsamples.googlecode.com/hg/caves/caves.html
Тестил это ну оооочень долго, ибо нравится мне.
http://codeflow.org/webgl/craftscape/
А вот эта демка крутилась у меня на мониторе как скринсейвер, часа 4 так.

winddos ★★★
()
Ответ на: комментарий от winddos

При том, что в SVG динамическое построение графиков в конце-концов «уронит» браузер. Думаю, в webGL будет то же самое.

Понимаешь ведь, что WebGL обрабатывается совсем другой частью движка браузера, и каждый кадр там никто не хранит, ну может огнелис и падал потому что хранил (зачем?).

Зато огнелис хранит и никуда не выбрасывает результаты старых ненужных POST-запросов, так что динамические графики без рефреша в конце-концов положат браузер.

А то, что ты приводишь по ссылкам, никакой динамики не содержит: единожды загружается код, а затем JS рисует себе всякую фигню.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ладно, значит ты меня не совсем понял :)
Я говорил о иного рода тормозах и проблемах, которые связаны с тем, что не нужно юзать WebGL тем кто не знает основ 3D.

winddos ★★★
()
Ответ на: комментарий от Eddy_Em

Давай я не буду тебе тут объяснять и приводить примеры того, что поделки програмиздов обычно выглядят как привет из 98 года, а тормозят как два первых кризиса запущенные одновременно.

Естественно он ничем не сложнее, спасибо кэп.
Но чтобы сделать вменяемое по производительности 3D нужно понимать как оно работает.

winddos ★★★
()
Ответ на: комментарий от Nagwal

спасибо, на нём и остановился. Только оно дорогое для коммерческих проектов :(. Ладно, надеюсь когда-нить дорасту до состояния что 700 баксов за лицензию на графики будут копейками.

true_admin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.