quinta-feira, 16 de abril de 2009

Instalando o Gnuplot CVS com Suporte ao TikZ

Fiz esse tutorial para o Ubuntu, mas deve funcionar para outras distros (só cuidado na parte de instalar a Lua).

TikZ é uma interface para o Pgf, que é um driver gráfico muuuito poderoso do LaTeX, que permite fazer gráficos vetoriais de alta qualidade em pdfs. A vantagem de usar o terminal TikZ do gunplot é que é possível editar de maneira prática o gráfico em um editor de texto, além de poder usar setinhas, bordas arredondadas, transparências!!

Para usar esse terminal você tem que ter o LaTeX e o Pgf/TikZ instalados!! Para isso basta ir em Aplicativos > Adicionar/Remover e instalar o texmaker e/ou o Lyx.

Enfim, chega de conversa!

Primeiro:
Copie o script a seguir e salve-o no seu home com o nome de "teste.gnuplot".

teste.gnuplot
#!/usr/local/bin/gnuplot
#Script de teste retirado de:
#http://www.texample.net/tikz/examples/gnuplot-tikz-terminal/
#Salve no seu home (~) com o nome de teste.gnuplot

set terminal lua fulldoc \
solid originreset plotsize 9,6.5
set output 'ntest.tex'

set format x "%2.0f"
set format y "%3.2f"

unset key
set label 1 '$\mu$' at 5.5, 0.0193014, 0 left norotate back nopoint offset character 0, 0, 0
set label 2 '$\sigma$' at 7.73607, 0.108213, 0 left norotate back nopoint offset character 0, 0, 0
set arrow 1 from 5, 0, 0 to 5, 0.178412, 0 nohead back nofilled linetype -1 linewidth 1.000
set arrow 2 from 5, 0.108213, 0 to 7.23607, 0.108213, 0 nohead back nofilled linetype -1 linewidth 1.000
set samples 200, 200
set ytics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 0.00000,0.0193014,0.193014
set title "poisson PDF using normal approximation"
set xlabel '$k, x$ \tikz[baseline]{\draw[yshift=.7ex,->](0,0)--(.7,0);}'
set xrange [ -2.00000 : 15.0000 ] noreverse nowriteback
set ylabel 'probability density \tikz[baseline]{\draw[yshift=.7ex,->](0,0)--(.7,0);}'
set yrange [ 0.00000 : 0.193014 ] noreverse nowriteback

isint(x)=(int(x)==x)

normal(x,mu,sigma)=sigma<=0?1/0:invsqrt2pi/sigma*exp(-0.5*((x-mu)/sigma)**2)
poisson(x,mu)=mu<=0?1/0:!isint(x)?1/0:x<0?0.0:exp(x*log(mu)-lgamma(x+1)-mu)

rnd(x) = floor(x+0.5)
fourinvsqrtpi = 2.25675833419103
invsqrt2pi = 0.398942280401433
twopi = 6.28318530717959
mu = 5.0
sigma = 2.23606797749979

plot poisson(rnd(x), mu) with histeps,\
normal(x, mu, sigma) # title '$\mathrm{normal}(x, \mu, \sigma)$'



Agora copie o script de instalação para algum arquivo de texto e salve no seu home como "instalar_gnuplot.sh".
Depois disso, use os seguintes comandos:
chmod u+x ./instalar_gnuplot.sh
./instalar_gnuplot.sh


instalar_gnuplot.sh
#!/bin/bash
#Instalando o Gnuplot 4.3 com o suporte ao terminal TikZ/pgf:
#Vamos fazer tudo no home (~)
cd
sudo apt-get update
sudo apt-get install lua5.1 liblua5.1-0 liblua5.1-0.dev libreadline5 libreadline5-dev
sudo apt-get build-dep gnuplot-nox gnuplot-x11
export CVSROOT=:pserver:anonymous@gnuplot.cvs.sourceforge.net:/cvsroot/gnuplot
echo "[IMPORTANTE]: APERTE ENTER QUANDO PEDIR O PASSWORD!!"
cvs login
cvs -z3 checkout gnuplot
cd ~/gnuplot
./prepare
#Agora o "Pulo do Gato", sem as flags ele não consegue achar a Lua
./configure --with-readline=gnu LUA_CFLAGS=`pkg-config --cflags lua5.1` LUA_LIBS=`pkg-config --libs lua5.1` --with-lua
make
sudo make install
# A seguir vai indicar o gnuplot instalado também (ou só) em /usr/local/bin/gnuplot
whereis gnuplot
# Para você não ter que digitar o path completo do cvs,
# caso tenha o "gnuplot estavel" instalado também.
echo "alias gnuplot='/usr/local/bin/gnuplot'" >> ~/.bashrc
gnuplot --version
#O comando acima deve retornar: gnuplot 4.3 patchlevel 0
#Agora, vamos por o .sty no lugar certo para o Latex compilar o seu grafico.
#E vamos testar o danado também.
[ -d ~/texmf/tex/latex ] || mkdir ~/texmf/tex/latex
cd ~/texmf/tex/latex
cp ~/gnuplot/term/lua/gnuplot-lua-tikz.sty .
cd
chmod u+x teste.gnuplot
./teste.gnuplot
pdflatex -interaction=nonstopmode ntest.tex
#Visualizando o resultado:
evince ntest.pdf
#Removendo o teste (opcional)
#rm ntest.*
exit 0



Esse ultimo script deve instalar tudo para você e criar um pdf com um gráfico de teste!!! Também coloquei vários comentários no script para você saber o que eu fiz em cada passo.

É isso! Lembre-se que não sou a prova de falhas, por isso de uma olhada no script antes de executar

OBS: Peguei o DIV para por os códigos do blog do meu amigo. [Link]

2 comentários:

Daniel; disse...

Aew!

Bom saber que vc n abandonou de vez esse blog.

O tikz só pode ser usado quando se for usar o LaTeX para gerar PDF? Não suporta outros formatos?

Ainda n estou estudando para valer o LaTeX. Estou vendo outras coisas como QT, xQuery e SQLite (q vou postar um artigo no blog muito em breve). Mas com certeza o mesmo está na minha lista, pois tenho como objetivo usá-lo no TCC.

Ow, v se posta logo a parte 2 do post do lesmas velozes, viu? quero ver o q vc vai colocar.

[[]]'s
Daniel

Daniel; disse...

OW!

parou?