LINUX.ORG.RU

Вышла библиотека MathGL 2.0

 , , , ,


0

2

Платформонезависимая библиотека MathGL предназначена для построения широкого спектра графиков (кривых, поверхностей, поверхностей уровня и т.д.). Есть возможности экспорта графики в растровые (PNG, JPEG) или векторные (EPS, SVG, TeX, OBJ) форматы и рисования в консольном режиме.

В новой версии значительно увеличена скорость рисования, унифицирован интерфейс, добавлены новые типы графиков и примитивов, добавлен экспорт в 3d форматы (OBJ, PRC, OFF, ...) и LaTeX, множество более мелких улучшений.

>>> Подробности

★★

Проверено: Shaman007 ()

хорошая новость, обязательно попробую на днях

vaino ()

ваще фантастика, обожаю опенсорс :)

кому нужны эти билдеры и платные виджеты? когда есть такое

I-Love-Microsoft ★★★★★ ()

Чем оно лучше matplotlib?

anonymous ()

А к каким языкам есть привязки?

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

Сам спросил, сам ответил. Цитата с оф. сайта:

In which language is the library written? For which languages does it have an interface?

The core of the MathGL library is written in C++. But there are interfaces for: pure C, Fortran, Pascal, Forth, and its own command language MGL. Also there is a large set of interpreted languages, which are supported (Python, Java, ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl). These interfaces are written using SWIG (both pure C functions and classes) but only the interface for Python and Octave is included in the autoconf/automake script. The reason is that I don’t know any other interpreted languages :(. Note that most other languages can use (link to) the pure C functions.

hippi90 ★★★★ ()

хм, сойти что ли с гнуплота на эту штуку?

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

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

Quasar ★★★★★ ()

А export в LaTeX как именно сделан? В смысле в формате какого пакета, или чисто примитивы picture использовались?

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

С gnuplot имеет смысл перескакивать на ROOT, если тебе не хватает функционала. MathGL это немного другая ниша — в частности ниша для написания программы типа gnuplot :) Кому там из студентов-информатиков тема для диплома нужна?

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

А export в LaTeX как именно сделан? В смысле в формате какого пакета, или чисто примитивы picture использовались?

Tikz/PGF — пакет, который работает и с latex и с pdflatex

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

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

Вообще-то есть MGL скрипты, которые можно использовать с готовыми программами, включенными в mathgl: mglconv, mglview, udav

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

Реально поддерживаются Fortran, Python, Octave, Pascal. Для всех остальных интерфейс пишется за минуты, но я не смог найти людей которым это было бы нужно (и которые могли бы его проверить). Поэтому в сборку они не включены.

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

Вдогонку. Поскольку все возможности настройки и рисования имеют С-ый интерфейс, то сюда можно включить и языки, которые умеют использовать С-ые функции напрямую (типа D).

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

С gnuplot имеет смысл перескакивать на ROOT, если тебе не хватает функционала. MathGL это немного другая ниша — в частности ниша для написания программы типа gnuplot :) Кому там из студентов-информатиков тема для диплома нужна?

Я бы так не сказал. Мне ROOT показался слишком тяжеловесным и запутанным.

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

А можно ли в вашей гуглгруппен задавать вопросы на русском языке?

anonymous ()
Ответ на: комментарий от abalakin

Это да, зато там реально можно напрягшись проводить интерактивный анализ данных, чего фактически нереально делать в gnuplot и нельзя делать в MathGL. Построение графиков вещь полезная, но это далеко не всё, что нужно, а писать программу по каждому чиху не всегда удобно.

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

А можно ли в вашей гуглгруппен задавать вопросы на русском языке?

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

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

Это да, зато там реально можно напрягшись проводить интерактивный анализ данных, чего фактически нереально делать в gnuplot и нельзя делать в MathGL. Построение графиков вещь полезная, но это далеко не всё, что нужно, а писать программу по каждому чиху не всегда удобно.

Сие неправда. В MathGL есть обработка данных http://mathgl.sourceforge.net/doc_en/mathgl_en_153.html#Data-processing . По крайней мере простейшая. А для более сложной все равно проще писать код самому, либо использовать специализированные программы.

abalakin ★★ ()

Эх, когда уже руки дойдут - посмотреть, что она собой представляет, да добавить-таки в Octave (уж больно тормозной метод графикопостроения через gnuplot).

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

Честно говоря не понял как это прикрутить к octave.

anonymous ()
Ответ на: комментарий от abalakin

Едрена вошь! В мандриве для октавы уже пакет есть…

Сейчас поставлю, пощупаю.

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

O'k принято: буду теперь говорить, что в MathGL есть отдельные зачатки для интерактивной обработки :)

Писать программу — это уже не интерактив. Интерактив — это возможность быстро поотбирать и попреобразовывать данные, не говоря уж о всяческих подгонках и сравнениях с моделями. То есть то, что в ROOT всё-таки присутствует в основном как полезное наследство PAW

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

Кстати, вот подумалось, что для обработки статданных, вероятно предпочтительней будет R. Но это именно обработка, а не отрисовка.

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

Писать программу — это уже не интерактив. Интерактив — это возможность быстро поотбирать и попреобразовывать данные, не говоря уж о всяческих подгонках и сравнениях с моделями. То есть то, что в ROOT всё-таки присутствует в основном как полезное наследство PAW

В целом согласен. Только программы бывают разные — питоновский код или MGL скрипт рука не поднимается назвать программой, хотя по сути это и есть программа. С другой стороны программы/скрипты позволяют воспроизвести один и тот же график в точности со всем оформлением (например, для другого набора данных), что для публикаций и обработки большого числа данных является несомненным плюсом.

По поводу более сложной обработки — мне не хотелось создавать ещё один вариант Matlab/Octave/Scilab/NumPy/... да и мои потребности в основном состоят в построении уже готовых данных и их минимальной обработке — найти среднее, максимум, сгладить или подогнать под формулу, распределение построить и пр. Собственно это и отражено в MathGL.

А по поводу интерактивного инструмента. Есть у меня планы написать что-то подобное. На самом деле всё необходимое для «интерактивности» уже есть в MathGL, надо лишь это использовать в программе-оболочке.

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

Кстати, вот подумалось, что для обработки статданных, вероятно предпочтительней будет R. Но это именно обработка, а не отрисовка.

Да. И я готов легко сделать интерфейс для R. Если бы кто-то смог его проверить ;) — сам я R почти не знаю.

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

>Кому там из студентов-информатиков тема для диплома нужна?

Общая физика, да и до диплома ещё далеко.

>MathGL это немного другая ниша

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

luke ★★★ ()

Плохая либа

Это плохая библиотека. Тормозная. MATLAB быстрее. А VTK намного быстрее MATLAB. И разный API под Windows и под Linux.

anonymous ()
Ответ на: комментарий от abalakin

По поводу более сложной обработки — мне не хотелось создавать ещё один вариант Matlab/Octave/Scilab/NumPy/.

В этом я абсолютно вас поддерживаю. Более того вашу замечательную библиотеку все эти проекты просто обязаны запользовать, чтобы избавиться от тормозов gnuplot :)

А по поводу интерактивного инструмента. Есть у меня планы написать что-то подобное.

Лучше посмотрите в сторону R — пусть это будет один из способов отображения данных, а инструменты там уже есть в больших количествах.

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

Да. И я готов легко сделать интерфейс для R. Если бы кто-то смог его проверить ;) — сам я R почти не знаю.

В силу своей специализации я вынужден использовать ROOT, поэтому на R могу только облизываться :(

По хорошему нужно найти кого-то из асов типа psv1967, но в качестве подопытного могу потыркаться :) Мой e-mail вы по-моему знаете.

Evgueni ★★★★★ ()
Ответ на: Плохая либа от anonymous

Это плохая библиотека. Тормозная. MATLAB быстрее. А VTK намного быстрее MATLAB. И разный API под Windows и под Linux.

+100500

VTK, ParaView, VMD, MatLab etc.

sanaris ()
Ответ на: комментарий от luke

Общая физика, да и до диплома ещё далеко.

Я не конкретно вам :) Это был призыв студентам-информатикам сделать доброе и нужное дело, дабы не разыгрывать драмы при защите диплома.

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

> А по поводу интерактивного инструмента. Есть у меня планы написать что-то подобное.

Лучше посмотрите в сторону R — пусть это будет один из способов отображения данных, а инструменты там уже есть в больших количествах.

Может мы говорим о слегка разных вещах. Под интерактивностью я понимаю возможность создания, изменения и т.д. графика мышкой. Соответственно меня просили (и я подумываю) написать что-то типа grapher или origin.

По поводу R — давайте сделаем интерфейс для него. По идее это должно быть просто http://www.swig.org/Doc1.3/R.html

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

Под интерактивностью я понимаю возможность создания, изменения и т.д. графика мышкой. Соответственно меня просили (и я подумываю) написать что-то типа grapher или origin.

Разве UDAV не нацеливался на эту нишу?

По поводу R — давайте сделаем интерфейс для него. По идее это должно быть просто

По идее да, но я никогда ничего не дал для R :) Но что мешает попробовать?

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

Боюсь выглядеть смешной со своим школьным английским.

anonymous ()
Ответ на: комментарий от abalakin

Наверное, лучше написать качественную документацию на русском языке. 2-3 строчки для описания функции на корявом английском очень неинформативны. По своему опыту могу сказать, что мне пришлось разбираться очень долго, больше недели. Библиотека для программистов, или для прикладных специалистов в области физики, биологии, геологии? Почему такое неуважение к пользователям? Опенсорс во всей красе.

anonymous ()
Ответ на: комментарий от sanaris

> Это плохая библиотека. Тормозная. MATLAB быстрее. А VTK намного быстрее MATLAB. И разный API под Windows и под Linux.

+100500

Каким способом OpenGL (если уж сравнивать самый быстрый) стал медленнее программной в Matlab? Тем более, что Matlab вылетает уже на не слишком больших массивах (256^3 и вроде даже на 128^3).

Кроме того, что в MathGL 2.* отрисовка значительно ускорена.

По поводу разного API — а вы вообще библиотеку хоть раз использовали?

VTK, ParaView, VMD, MatLab etc.

Ну-ну. VTK — ещё тот монстр для использования в своём коде — хотя если Вам нравится, то пожалуйста пользуйте :). ParaView и Matlab — программы для рисования и использовать их в _своём_ коде тяжеловато. А последний ещё и стоит тысячи у.е. VMD вроде как из другой области (для рисования молекул). Ещё примеры есть?

abalakin ★★ ()

Попробовал из репозитория установить - не заработало. Скачал, скомпилил, установил. В Octave теперь работает. Попробовал простенькие примерчики - все ОК.

Вот только такой вопрос: а как в этой штуке вообще графики в Octave по набору точек строить (вроде plot(x,y))? Есть ли какие-нибудь примеры. Не нагуглил ничего подходящего.

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

Наверное, лучше написать качественную документацию на русском языке. 2-3 строчки для описания функции на корявом английском очень неинформативны. По своему опыту могу сказать, что мне пришлось разбираться очень долго, больше недели. Библиотека для программистов, или для прикладных специалистов в области физики, биологии, геологии?

Хмм, в версии 1.* русская документация была полноценной. Кроме того, есть примеры. Кроме того, в исходниках есть русская документация. Правда она не полностью закончена, поэтому в конечную сборку не включена.

Почему такое неуважение к пользователям? Опенсорс во всей красе.

Хмм, что-то я не понимаю Вашу позицию. Мне надо было _вообще_убрать_ документацию? или переводить её сразу на все 200+ языков земного шара, дабы уважение к «пользователям» проявить?

Опенсорс предполагает не только потребление, но и отдачу — возьмите документацию и переведите/поправьте. Тем более что формат у неё очень простой. Как только у меня будет свободное время, так я займусь документацией на русском. Или нанимайте переводчика/стилиста, платите деньги и читайте на том языке который хотите.

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

Вот только такой вопрос: а как в этой штуке вообще графики в Octave по набору точек строить (вроде plot(x,y))? Есть ли какие-нибудь примеры. Не нагуглил ничего подходящего.

Честно говоря не помню. Вроде достаточно

y = mglData(y_dat); gr.Plot(y);

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

OpenDX вроде давно не развивается?! Про Vis5D ничего сказать не могу.

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

Это да, но Open Source не мешает его развить. Ещё какая-то весьма приятная рисовалка была для отображения многомерных пространств, тоже сейчас не развивающаяся (прикрыли лабу которая её писала) — забыл.

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

Не все так просто:

 d = mglData([1:100]);
error: No matching function for overload

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