1. В учебниках и документации, например Bernardin L. et al. “Maple Programming Guide”, 2014, рассказывается о работе с
Record, но не о работе со структурами, для примера, типа
PLOT,
PLOT3D,
_PLOTARRAY. С последними структурами сталкиваемся достаточно часто, поэтому они и взяты для примера.
2. Простые графики можно заново перерисовать. Пример графика
взят, чтобы проблема понятна была. Более осмысленным будет перерисовка графиков, которые строятся методом
plot модуля
pdsolve. Потратить много часов на повторный расчёт может быть неразумно. Для оформления рисунков, конечно, можно экспортировать рисунок в ps и уже в текстовом или графическом редакторе отредактировать цвета. Но иногда особым оформлением рисунков заниматься не хочется.
3. Формат результата, который возвращает
lprint, несколько неудобен, по крайней мере в старых версиях. Результаты
op короче. Для простых графиков разница не особо важна, а для сложных будет заметней. Но это особого значения не имеет. Как-то получить цвета, как я писал выше, можно. (Цвета взяты также для примера, можно что-то другое смотреть.).
Трудность в
записи в структуру / в изменении значений отдельных полей структуры.
-- Tue 12.05.2020 22:13:40 --Код:
> p:= plot(x^2, x=0..1):
> op(p);
CURVES([[0., 0.], [.52576050251256281407035175879397e-2, .27642410600226256912704224640792e-4], [.98322190452261306532663316582915e-2, .96672531353307444256458170248227e-4],
<... выброшена часть списка ....>
[.99513595100502512562814070351760, .99029556098267576734173379460117], [1., 1.]],COLOUR(RGB,1.00000000,0.,0.,_ATTRIBUTE("source" = "mathdefault"))), AXESLABELS(x,""), VIEW(0. .. 1.,DEFAULT,_ATTRIBUTE("source" = "mathdefault"))
Теперь результат, который вернула
op, вставляем внутрь
PLOT(…) (вместо многоточия), изменяем цвета и присваиваем p. После этого выводим display
Код:
> p:= PLOT(CURVES([[0., 0.], [.52576050251256281407035175879397e-2, .27642410600226256912704224640792e-4],
<... выброшена часть списка ...>
[.99513595100502512562814070351760, .99029556098267576734173379460117], [1., 1.]],COLOUR(RGB,0.00000000,0.,0.,_ATTRIBUTE("source" = "mathdefault"))), AXESLABELS(x,""), VIEW(0. .. 1.,DEFAULT,_ATTRIBUTE("source" = "mathdefault"))):
> display(p);
Если графики сложные, то замучаешься копировать.
-- Tue 12.05.2020 22:28:41 --(Поэтому в начальном сообщении указан вариант с записью в текстовый файл, редактированием в нём и чтением из него. Это очевидно, но не очень удобно.)
Upd На всякий случай.
При помощи
op можно, конечно, разобрать
PLOT, изменить нужную часть и затем собрать. Classic Worksheet Maple 15:
Код:
> P:=plot(x^2, x=0..1):
> P1:= op(1, P): P2:= op(2, P): P3 := op(3, P):
> P11:= op(1, P1): P12:=op(2, P1);
P12:= COLOUR(RGB,1.00000000,0.,0.,_ATTRIBUTE("source" = "mathdefault"))
# Изменяем цвет с красного на черный
> P12:= COLOUR(RGB,0.,0.,0.,_ATTRIBUTE("source" = "mathdefault")):
> P:= PLOT(CURVES(P11, P12), P2, P3):
> display(P);
Но если немного изменить построение графика, то и последовательность «разборки» и «сборки» немного меняется. Classic Worksheet Maple 15:
Код:
> P:=plot(x^2, x=0..1, color=red):
> P1:= op(1, P): P2:= op(2, P); P3:= op(3, P): P4:= op(4, P):
P2 := COLOUR(RGB,1.00000000,0.,0.)
# Изменяем цвет с красного на черный
> P2 := COLOUR(RGB,0.,0.,0.);
> P:= PLOT(P1, P2, P3, P4):
> display(P);
Вот это и не удобно.