LINUX.ORG.RU

Вышла библиотека MathGL 1.11 и программа UDAV 0.7

 , , , , udav, , ,


0

2

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

Из нового:

  • новые типы графиков;
  • новые стили линий и маркеров;
  • выравнивание subplot/colorbar/legend;
  • возможность загрузки/сохранения сжатых файлов (шрифты, данные, SVG, EPS и другие форматы);
  • подпрограммы и прочие улучшения в MGL;
  • перевод большей части документации на русский язык.

Сайт программы: http://mathgl.sf.net

UDAV — программа построения графиков и изображений на основе скриптового языка MathGL. Поддерживается широкий спектр графиков и функций редактирования данных. Оконный интерфейс (на основе Qt4) позволяет вращать/двигать/приближать графики мышкой и с помощью меню, включать/выключать прозрачность и освещение, смотреть на графики под разными углами (при разных параметрах построения).

Из нового:

  • улучшения в диалоге ввода новой команды и анимации;
  • автодополнение команд и имён переменных;
  • в качестве справки используется документация MathGL;
  • масса улучшений от MathGL в синтаксисе скриптов MGL;
  • шаблоны при загрузке файлов данных и прочие мелкие улучшения.

Сайт программы: http://udav.sf.net

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

★★

Проверено: anonymous_incognito ()
Последнее исправление: Dendy (всего исправлений: 2)

Ответ на: комментарий от Const

> Ну, единственные удачные линии тока, которые у меня получались: это когда сам пускал «пробные частицы» отдельным кодом…

В дополнение. MathGL умеет пускать линии и из заданной точки с помощью функции mglGraph::FlowP().

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

Спасибо за отличную библиотеку, пользуюсь!

Пока не нашёл, как сменить цвет осей. Хотя бы белый/чёрный. Фон меняется функцией Clf (правильно?).

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

Тогда я про нее не знал, и в лоре редко появлялся. Пользовался каким-то таким отстоем, что аш страшно))

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

Кстати, при установке из src была пара шероховатостей. В дистрибутиве не было фонтов, пришлось их отдельно скачивать и копировать в каталог, чтобы прошёл make install (иначе завершался с ошибкой). И при установке хедеров им присваиваются почему-то права 700, и если ставить из-под рута, это приводит к недоступности хедеров.

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

> Пока не нашёл, как сменить цвет осей. Хотя бы белый/чёрный. Фон меняется функцией Clf (правильно?).

Меняется функцией SetTranspType() (или командой transptype). Примеры http://mathgl.sourceforge.net/mathgl_ru/mathgl_ru_94.html#Normal-transparency ... http://mathgl.sourceforge.net/mathgl_ru/mathgl_ru_94.html#Lamp_002dlike-trans...

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

> Кстати, при установке из src была пара шероховатостей. В дистрибутиве не было фонтов, пришлось их отдельно скачивать и копировать в каталог, чтобы прошёл make install (иначе завершался с ошибкой). И при установке хедеров им присваиваются почему-то права 700, и если ставить из-под рута, это приводит к недоступности хедеров.

В минорных версиях я не вставлял шрифты (из-за большого объема). Теперь видимо буду :). Про заголовочные файлы странно ...

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

Спасибо. Ну может, я что-то путаю, но мне пришлось в файлах Makefile.in заменять 700 на 755 в строках типа:

find «$(distdir)/$$file» -type d ! -perm -700 -exec chmod u+rwx

Иначе обычные юзеры не могли открыть хедеры mgl.

hbee ★★★★
()

очень круто, но блин:

port list | grep mathgl

<долбанное ничего>

port list | grep udav

<те же яйца>

А так хотелось попробовать... продолжаем кушать Mathematica.

nikitos ★★★
()

временные ряды

есть ли возможность строить временные ряды?
вот, например, как это сделано в gnuplot:

set xdata time
set timefmt «%d/%m/%Y %H:%M:%S»
plot datafile.txt using 1:3 title «Sea level variations»

и засечки на осях проставляются в формате времени: секунды, минуты, часы, целое/ удобное дробное количество часов, дни, недели, месяцы, годы.

в гнуплоте минимальная дискретность 1 с.

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

Спасибо!

Что то я не нашел может ли mathgl прочитать бинарный файл, созданный, например, в фортране? Или все данные нужно в ascii переводить?

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

Ъ по ссылкам не ходит и тред не читает, комментарии тоже ;)

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

> Что то я не нашел может ли mathgl прочитать бинарный файл, созданный, например, в фортране? Или все данные нужно в ascii переводить?

Бинарные файлы читает, но только для известных форматов (HDF4, HDF5). Бинарные данные не читает по «моральным» соображениям. Для фортрана можно загрузить бинарные данные и использовать mgl_data_set_float() или mgl_data_set_double() для дальнейшего использования в MathGL.

abalakin ★★
() автор топика
Ответ на: временные ряды от anonymous

> временные ряды

есть ли возможность строить временные ряды?

Автоматически пока нет. Можно использовать SetTicksVal() для установки меток осей вручную.

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

> очень круто, но блин:

port list | grep mathgl

а теперь можно еще раз русским языком и не для телепатов — что именно хочется?

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

> Уже можно пользовать?!

глядя что. MathGL уже года 3 как используют :))

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

>> Что то я не нашел может ли mathgl прочитать бинарный файл, созданный, например, в фортране? Или все данные нужно в ascii переводить?

Бинарные файлы читает, но только для известных форматов (HDF4, HDF5). Бинарные данные не читает по «моральным» соображениям. Для фортрана можно загрузить бинарные данные и использовать mgl_data_set_float() или mgl_data_set_double() для дальнейшего использования в MathGL.

Ясно. По моральным же соображениям никогда не рисую из фортрана. Насколько хорошо mathgl сочетается с numpy? Скажем прочитать при помощи нумпи и дальше рисовать. Спрашиваю, потому что у вас функциональность дублирует некоторые вещи нумпия

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

Ещё чего. Тебе поднеси да разжуй замечательную либу, чтобы ты продолжал отстегивать своему Яблочному Властелину?

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

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

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

Спасибо за указание, чем мне стоит заняться, я всё же хотел заняться использованием mathgl

Пока готовится порт, сделай полезное дело в виде ./configure && make && make install И сообщи нам про результат ..

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

ну, всё весело: [code] tar xzf mathgl-1.11.tgz mathgl-1.11/png/Makefile.am: Cannot extract through symlink mathgl-1.11/png mathgl-1.11/png/hotdogs.pts: Cannot extract through symlink mathgl-1.11/png mathgl-1.11/png/Makefile.in: Cannot extract through symlink mathgl-1.11/png tar: Error exit delayed from previous errors. [/code]

./configure захотел сразу gsl, оно есть в портах, но ребятки, так путь джедая по созданию порта прийдётся пройти самому.

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

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

У меня не линкуется: libtool: link: g++ -dynamiclib -o .libs/libmgl.5.dylib .libs/libmgl_la-mgl_data_cf.o .libs/libmgl_la-mgl_axis.o .libs/libmgl_la-mgl_data_png.o .libs/libmgl_la-mgl_zb2.o .libs/libmgl_la-mgl_c.o .libs/libmgl_la-mgl_eps.o .libs/libmgl_la-mgl_font.o .libs/libmgl_la-mgl_zb.o .libs/libmgl_la-mgl_combi.o .libs/libmgl_la-mgl_eval.o .libs/libmgl_la-mgl_gl.o .libs/libmgl_la-mgl_def_font.o .libs/libmgl_la-mgl_1d.o .libs/libmgl_la-mgl_cont.o .libs/libmgl_la-mgl_exec.o .libs/libmgl_la-mgl_tex_table.o .libs/libmgl_la-mgl_2d.o .libs/libmgl_la-mgl_crust.o .libs/libmgl_la-mgl_export.o .libs/libmgl_la-mgl_main.o .libs/libmgl_la-mgl_3d.o .libs/libmgl_la-mgl_data.o .libs/libmgl_la-mgl_f.o .libs/libmgl_la-mgl_idtf.o .libs/libmgl_la-mgl_ab.o .libs/libmgl_la-mgl_data_io.o .libs/libmgl_la-mgl_flow.o .libs/libmgl_la-mgl_vect.o .libs/libmgl_la-mgl_parse.o .libs/libmgl_la-mgl_fit.o .libs/libmgl_la-mgl_pde.o .libs/libmgl_la-mgl_evalc.o .libs/libmgl_la-mgl_addon.o .libs/libmgl_la-mgl_evalp.o /opt/local/lib/libpng12.dylib -L/opt/local/lib -framework OpenGL -lpthread /opt/local/lib/libgsl.dylib /opt/local/lib/libgslcblas.dylib -lm -framework OpenGL -install_name /usr/local/lib/libmgl.5.dylib -compatibility_version 6 -current_version 6.0 -Wl,-single_module Undefined symbols: «_gzclose», referenced from: mglGraphPS::WriteSVG(char const*, char const*)in libmgl_la-mgl_eps.o mglGraphPS::WriteEPS(char const*, char const*)in libmgl_la-mgl_eps.o mglFont::read_main(char const*, unsigned int&)in libmgl_la-mgl_font.o mglFont::read_main(char const*, unsigned int&)in libmgl_la-mgl_font.o mglFont::read_data(char const*, float*, short*, short*, unsigned int*, short*, unsigned int*, unsigned int&)in libmgl_la-mgl_font.o mglFont::read_data(char const*, float*, short*, short*, unsigned int*, short*, unsigned int*, unsigned int&)in libmgl_la-mgl_font.o mgl_bps_save(char const*, int, int, unsigned char**)in libmgl_la-mgl_export.o mglData::ReadMat(char const*, int)in libmgl_la-mgl_data_io.o mglData::Read(char const*, int, int, int)in libmgl_la-mgl_data_io.o mglData::Read(char const*)in libmgl_la-mgl_data_io.o «_gzprintf», referenced from: и так далее

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

собралось на mac osx 10.6.4 после bootstrap и установки universal variant libpng. Примеры работают, так что mathgl мультплатворменная :-)

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

>а теперь можно еще раз русским языком и не для телепатов — что именно хочется?

Человеку хочется, чтобы за него разжевали, а в рот ему уже с желудочным соком закачивали.

Типа, автор просто обязан под все системы пакеты собирать, иначе никитосу неудобно ;)

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

> Ясно. По моральным же соображениям никогда не рисую из фортрана.

Может и зря — если расчет длинный или с большим объемом данных, то лучше считать и рисовать в одном месте (например, на кластере).

Насколько хорошо mathgl сочетается с numpy? Скажем прочитать при помощи нумпи и дальше рисовать.

Да, данные из numpy импортируются без проблем.

Спрашиваю, потому что у вас функциональность дублирует некоторые вещи нумпия

Хмм, на питоне (numpy) свет клином не сошелся — бывают и другие языки, и на них тоже хочется строить графики, а иногда еще и слегка пересчитать/поменять/проанализировать данные :).

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

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

Согласен, но иначе собрать документацию TeXinfo с картинками у меня не получилось :(

У меня не линкуется: ...

Сходу видно что нет библиотеки -lz (которая автоматически цепляется из -lpng, -ljpg и пр.)

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

> Хочется чтоб замечательная программа/библиотека была доступна через MacPorts.

Хмм, это как бы не моя работа — собирать MathGL под все возможные ОС и дистрибутивы и распространять бинарные пакеты. На это есть майнтейнеры и пр. Под Windows собираю (в cmake), т.к. система пока довольно распространенная, а для всех других есть autoconf или cmake на выбор.

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

> это как бы не моя работа — собирать MathGL под все возможные ОС и дистрибутивы и распространять бинарные пакеты.

Ок, ок я понял, хочешь использовать - собирай сам. MacPorts это системка распространения программ путём сборки их из исходников (не разводя свалку в /). Думаю было бы замечательно 1 раз уделить внимание такой ненавистной здешним завсегдатаям платформе, хотя ладно я уже собрал с помощью cmake.

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

> > автор просто обязан под все системы пакеты собирать

А что в этом зазорного?

как бы это несколько другая работа и несколько другие деньги ... :)

Для этого надо: (1) купить мак и лучше нескольких версий ОС; (2) разобраться в системе сборки; (3) потратить время на сборку, тестирование, выкладывание и пр.; и т.д. и т.п. А это время и деньги.

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

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

> Ок, ок я понял, хочешь использовать - собирай сам. ... хотя ладно я уже собрал с помощью cmake.

Так все таки собрать получилось ;) :))

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

> Но уж на шею-то садится не надо!

Мб я не прав, но утомительная поддержка нескольких платформ положительно сказывается на качестве самого продукта. Мне, например, удобнее разрабатывать под mac, хотя целевая платформа win32/64 (так ещё и козырь в рукаве есть ;).

Я разобрался с написанием portfiles, те сделаю-таки порт, если его одобрят или как там это называется - то будет и ваша программа/библиотека доступна в macports.

Ну а пока я попробовал собрать udav :), тоже не всё сразу.

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

> Мб я не прав, но утомительная поддержка нескольких платформ положительно сказывается на качестве самого продукта. Мне, например, удобнее разрабатывать под mac, хотя целевая платформа win32/64 (так ещё и козырь в рукаве есть ;).

Тут скорее важно тестирование на разных платформах, поиск различий в стандартных библиотеках и добавление соответствующих «заплаток» (например, для MSVS версии с ее уникальными «стандартами») ... код-то один и тот же.

Я разобрался с написанием portfiles, те сделаю-таки порт, если его одобрят или как там это называется - то будет и ваша программа/библиотека доступна в macports.

Вот это правильный подход! Спасибо

Ну а пока я попробовал собрать udav :), тоже не всё сразу.

А там-то что не так??? Это же обычный qt4 проект!

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

> А там-то что не так??? Это же обычный qt4 проект!

почему-то qmake кривой .xcodeproj создала ( qt 4.6.2, 32-битное, а оно сделало под x86_64).

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

Кстати, не худо было бы положить в дистрибутив FindMathGL.cmake. Я нашёл какой-то на просторах интернета, можно его взять за основу.

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

> Кстати, не худо было бы положить в дистрибутив FindMathGL.cmake. Я нашёл какой-то на просторах интернета, можно его взять за основу.

А зачем он?

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

При установке никуда не надо, пусть лежит в каталоге cmake на одном уровне с src; кому надо - найдёт.

Этот файл плохой. Мой тоже, потому что ищет только core и qt, но он хотя бы рабочий:

hbee ★★★★
()
Ответ на: комментарий от hbee
# FindMathGL.cmake - Check for the presence of MathGL
#
# The following variables are set when MathGL is found:
#  HAVE_MATHGL       = Set to true, if all components of MathGL have been found.
#  MATHGL_INCLUDES   = Include path for the header files of MathGL
#  MATHGL_LIBRARIES  = Link these to use MathGL
#  MATHGL_LFLAGS     = Linker flags (optional)

## -----------------------------------------------------------------------------
## Search locations

set (include_locations
    /usr/include
    /usr/local/include)

set (lib_locations
    /usr/local/lib64
    /usr/local/lib
    /usr/lib64
    /usr/lib)

## -----------------------------------------------------------------------------
## Check for the header files

find_path (MATHGL_INCLUDES mgl/mgl.h mgl/mgl_data.h
  PATHS ${include_locations}
  NO_DEFAULT_PATH)

## -----------------------------------------------------------------------------
## Check for the various libraries

set (MATHGL_LIBRARIES "")

## libmgl

find_library (HAVE_LIBMGL mgl
  PATHS ${lib_locations}
  NO_DEFAULT_PATH)
if (HAVE_LIBMGL)
  list (APPEND MATHGL_LIBRARIES ${HAVE_LIBMGL})
endif (HAVE_LIBMGL)

## -----------------------------------------------------------------------------
## Actions taken when all components have been found

if (MATHGL_INCLUDES AND MATHGL_LIBRARIES)
  set (HAVE_MATHGL TRUE)
else (MATHGL_INCLUDES AND MATHGL_LIBRARIES)
  set (HAVE_MATHGL FALSE)
  if (NOT MATHGL_FIND_QUIETLY)
    if (NOT MATHGL_INCLUDES)
      message (STATUS "Unable to find MATHGL header files!")
    endif (NOT MATHGL_INCLUDES)
    if (NOT MATHGL_LIBRARIES)
      message (STATUS "Unable to find MATHGL library files!")
    endif (NOT MATHGL_LIBRARIES)
  endif (NOT MATHGL_FIND_QUIETLY)
endif (MATHGL_INCLUDES AND MATHGL_LIBRARIES)

if (HAVE_MATHGL)
  if (NOT MATHGL_FIND_QUIETLY)
    message (STATUS "Found components for MATHGL")
    message (STATUS "MATHGL_INCLUDES  = ${MATHGL_INCLUDES}")
    message (STATUS "MATHGL_LIBRARIES = ${MATHGL_LIBRARIES}")
  endif (NOT MATHGL_FIND_QUIETLY)
else (HAVE_MATHGL)
  if (MATHGL_FIND_REQUIRED)
    message (FATAL_ERROR "Could not find MATHGL!")
  endif (MATHGL_FIND_REQUIRED)
endif (HAVE_MATHGL)

## -----------------------------------------------------------------------------
## Mark advanced variables

mark_as_advanced (
  MATHGL_INCLUDES
  MATHGL_LIBRARIES
)

# EOF FindMathGL.cmake
hbee ★★★★
()

А как у либы с загрузкой данных из файла?
Вот например у меня есть результаты численного решения, занимающий, скажем, двести метров. Результат — векторная функция одного аргумента (ну или несколько функций, заданных на одной сетке, не суть), заданная таблично. В общем набор вида "(1,(1,2,3)), (2,(3,4,5)), ...". Была ли система протестирована на хотя бы таких объёмах входящих данных? И в каком формате лучше всего записывать? Ибо форматирование вывода всё-таки не проблема)

Я знаю, что для этих целей хорошо подходит tecplot, только он, во-первых, несвободный, а во-вторых — дорогой =(

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

>>для этих целей хорошо подходит tecplot

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

Продают снег эскимосам короче.

mclaudt
()
Ответ на: комментарий от Pellaeon

> А как у либы с загрузкой данных из файла?

Хорошо — на выбор текстовые файлы в различных форматах, HDF4, HDF5, PNG. Можно еще самому прочитать и заполнить из массива. Для начала я бы порекомендовал почитать http://mathgl.sourceforge.net/mathgl_ru/mathgl_ru_12.html#Data-handling (пока на английском) и http://mathgl.sourceforge.net/mathgl_ru/mathgl_ru_46.html#File-I_002fO

Вот например у меня есть результаты численного решения, занимающий, скажем, двести метров.

Совсем немного, редкий расчет меньше пары гигов занимает.

Результат — векторная функция одного аргумента (ну или несколько функций, заданных на одной сетке, не суть), заданная таблично. В общем набор вида "(1,(1,2,3)), (2,(3,4,5)), ...".

Вот тут подробнее, это {ax[i,j,k],ay[i,j,k],az[i,j,k]}? если да, то для рисования см. http://mathgl.sourceforge.net/mathgl_ru/mathgl_ru_30.html#Vector-fields

или это данные на поверхности заданной треугольниками? если да, то можно посмотреть отсюда http://mathgl.sourceforge.net/mathgl_ru/mathgl_ru_31.html#TriPlot и далее

Была ли система протестирована на хотя бы таких объёмах входящих данных? И в каком формате лучше всего записывать?

Обычно я стараюсь резать такие файлы еще при сохранении. Хотя я знаю людей, которые строят по 5-8 поверхностей на графике из матриц N=1024*32768 точек каждая ... долго немножко получается ... Ну и памяти надо иметь много. Хотя процессоров на кластере много, считается долго ... почему бы в параллель и не построить рисунок, зато потом скачивать/анализировать надо маленький(ие) файл(ы) рисунка(ов), а не все массивы.

Сам регулярно строю графики для трехмерных массивов 256*256*1000 точек — типичная картинка для 3D импульса или СВЧ пучка в плазме. Точнее по 2 и более таких массива (амплитуда + фаза + иногда плотность плазмы, амплитуда плазменной волны и т.д.).

Единовременные расходы (максимальные, обычно меньше) на построение графика (объекта, поверхности и т.д.) равны 7*sizeof(float)*N=28*N байт. Для линий (contour/isoline) и поверхностей (isosurface) уровня значительно меньше. Дальше считайте хватит ли Вам оперативки. Именно из-за таких картинок, MathGL имеет возможность рисовать в консоли (на кластере — там где данные посчитаны).

Ибо форматирование вывода всё-таки не проблема)

Ну так в чем вопрос — может вообще все данные сохранять в столбик, а потом задать размерность при чтении (см. mglData::Read(char*,int,int,int)), можете вначале файла указать размерность массива (см. mglData::ReadMat()), а можно отформатировать файл: перевод строки начинает новую строку данных, пустая строка отделяет срезы данных (nx*ny) друг от друга и использоавть mglData::Read(char*). Наконец, можно сохранять в HDF5 — быстро, заморачиваться не надо о размерах, и от типа процессора не зависит.

Собственно все это и в документации написано, например в http://mathgl.sourceforge.net/mathgl_ru/mathgl_ru_46.html#File-I_002fO

Я знаю, что для этих целей хорошо подходит tecplot, только он, во-первых, несвободный, а во-вторых — дорогой =(

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

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

Спасибо за подробный ответ!! Всё оказалось даже лучше, чем я предполагал.)

А насчёт текплота — так это мне научрук в своё время подсунул. Сам страдал от этих менюшек и диалогов, да. Графики он строит всякие разные, самым разнообразным способом, хоть и работает только со своим форматом входных данных, что кагбэ не Ъ. Рекламировать ни в коей мере не собирался, просто в качестве примера привёл)

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

Справедливости ради: этот свой формат данных у текплота текстовый, что облегчает. Но вот нет у него никаких преимуществ, чтобы имело смысл платить такие деньги (надо отметить, — немалые).

Кроме того, eps он по-дурному создаёт. Каждый раз, когда в ём деланную картинку присылают, приходится сначала в текстовом редакторе eps править ;)

Const
()

А как отключить прозрачность? Допустим, рисуем два совпадающих графика. Их цвет смешивается. А надо, чтобы второй график лёг поверх первого, чтобы первого и не видно было.

Ставил и Alpha(false), и SetTransparency(false) - ничего не меняется. Как правильно делать?

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