sábado, 19 de janeiro de 2013

Algumas dicas não triviais para plots no Maple

Eu aconselho qualquer um que esteja começando a precisar usar software de manipulação algébrica a não usar o Maple. Apesar de ter uma linguagem bastante simples e uma excelente interface (não gosto muito da IDE do Mathematica), o CAS canadense possui uns bugs muito irritantes, que um dia ainda escreverei sobre. Mas, como já tenho muita coisa escrita no Maple, ficaria difícil mudar para outro software no momento, ainda mais no fim do doutorado.


Uma coisa chata de se fazer no Maple (e que é trivial em outros sistemas, como por exemplo no Mathematica), é ajustar o tamanho dos eixos de um gráfico através de um comando, coisa fundamental para padronizar plots para publicação. O padrão fornecido é o ajuste via “clicar na figura e arrastar”, algo totalmente não prático.


Outro procedimento que, na minha opinião, deveria ser mais prático é o de exportação de figuras no tamanho/resolução escolhido pelo usuário. Por default, você pode clicar com o botão direito do mouse sobre um plot, e escolher a opção “exportar” no popup que se abre. No entanto, não é fornecida nenhuma opção ao usuário além do formato desejado para a figura. Nada de escolher resolução/qualidade/tamanho etc.


Depois de algum tempo pesquisando, consegui finalmente encontrar a solução para meus problemas aqui: http://www.mapleprimes.com/questions/125945-Plot-Size-On-Export-With-Maple-15


A idéia é criar uma função, chamada no Maple de “Procedure”, para especificar as opções desejadas para exportar seu plot:



MakeWidePlot := proc(p::evaln)
local name, place, opts:
name := cat("c:/temp/",convert(p,string),".ps"):
opts := `landscape,width=1024,height=768,noborder`:
plotsetup('ps', 'plotoutput'=cat(name), 'plotoptions'=opts):
print( plots:-display( eval(p), 'axesfont' = [ TIMES, 10 ],
'labelfont' = [ TIMES, ROMAN, 10] ) ):
plotsetup(default):
end proc:

MakeWidePlot(P);

No pedaço de código acima, “P” é o plot definido anteriormente no qual será aplicado as especificações acima, como altura, largura, modo paisagem ou retrato etc. Por exemplo, “P” pode ser:


P:=plot(x^2,x=-1..1);


Também funciona no ambiente “display”, por exemplo,


P:=display({plot1,plot2…},opts);


Isso mata dois coelhos com uma cajadada só: o problema do tamanho da figura exportada, e o ajuste do tamanho dos eixos.


Até a próxima!




Nenhum comentário:

Postar um comentário