Salviano A. Leão
6 de agosto de 2018
Gnuplot
Sumário
1. Funções Básicas
1. Funções Básicas
2. Gráfico de Funções
1. Funções Básicas
2. Gráfico de Funções
• Gráficos unidimensionais
• Gráficos bidimensionais
• Gráficos de Funções Paramétricas
• Gráficos em coordenadas polares
1. Funções Básicas
2. Gráfico de Funções
• Gráficos unidimensionais
• Gráficos bidimensionais
• Gráficos de Funções Paramétricas
• Gráficos em coordenadas polares
3. Gráficos de Arquivos
1. Funções Básicas
2. Gráfico de Funções
• Gráficos unidimensionais
• Gráficos bidimensionais
• Gráficos de Funções Paramétricas
• Gráficos em coordenadas polares
3. Gráficos de Arquivos
• Gráficos unidimensionais
• Gráficos bidimensionais
1. Funções Básicas
2. Gráfico de Funções
• Gráficos unidimensionais
• Gráficos bidimensionais
• Gráficos de Funções Paramétricas
• Gráficos em coordenadas polares
3. Gráficos de Arquivos
• Gráficos unidimensionais
• Gráficos bidimensionais
4. Tipos de Terminais
1. Funções Básicas
2. Gráfico de Funções
• Gráficos unidimensionais
• Gráficos bidimensionais
• Gráficos de Funções Paramétricas
• Gráficos em coordenadas polares
3. Gráficos de Arquivos
• Gráficos unidimensionais
• Gráficos bidimensionais
4. Tipos de Terminais
5. Scripts.
NOTA
Atualmente há dois sites que fornecem o gnuplot na web:
• http://gnuplot.respawned.com/
• http://plotshare.com/
NOTA
Exemplo de interface de um programa C++ usando o gnuplot:
• http://www.robertnz.net/gnuplot.htm
NOTA
Uma alternativa livre ao gnuplot é o ctioga2:
• http://ctioga2.sourceforge.net/
NOTA
Para fazer um gráfico de resultado experimentais faça:
• Crie seu arquivo de dados, tabela em um editor sem formatação, como por exemplo no
GNU/Linux emacs, nano, gedit, xed, etc. No Windows use o Notepad.
• Ao criar um arquivo separado, isso lhe garante que você poderá usar qualquer software
para fazer o seu gráfico.
• Nos softwares como o gnuplot você pode fazer o gráfico usando diretamente o arquivo
de dados.
• Nos softwares gráficos como Origin, qtiplot, Labplot, etc, você importar o seu arquivo
de dados dentro de suas planilhas.
• Crie quantas colunas forem necessária e estabeleça um padrão para a separação entre
as colunas;
• Ao usar um software gráfico nunca edite diretamente seus arquivo de dados na plani-
lha do software. Importe o arquivo de dado no software e depois faça o gráfico. Caso
contrário, você ficará restrito ao software no qual editou seus dados.
abs (x) Para x qualquer, retorna o valor absoluto de x com o mesmo tipo de x.
ceil(x) Para ⌈x⌉, retorna o menor inteiro não menor que x (parte real).
cos(x) Para x qualquer, retorna o cosseno de x, cos x.
cosh(x) Para x qualquer, retorna o cosseno hiperbólico de x, cosh x, .
erf (x) Para x qualquer, retorna a função erro Erf(real(x)), do real(x).
erf c(x) Para x qualquer, retorna Erfc(real(x)) = 1.0 − Erf(real(x)).
exp(x) Para x qualquer, retorna ex .
f loor(x) Para x qualquer, retorna ⌊x⌋, o maior inteiro não maior do que x (parte real).
• Pode-se chamar uma sessão iterativa com • Pode-se fornecer os comandos para o
gnuplot diretamente da linha de comando, e
gnuplot
para isso usa-se a opção -persist"para que a
tela gráfico não seja fechada após a
• Pode-se chamar uma sessão usando dois execução do comando:
arquivo de comandos “graf1.gp” e “graf2.gp”:
gnuplot -persist -e "set title
gnuplot graf1.gp graf2.gp ֒→ 'Curva do Seno'; plot sin(x)"
• Pode-se chamar uma sessão iterativa após a • Para definir o valor das variáveis "g"e
inicialização de umas definições padrões "s"antes de executar os comandos a partir de
arquivadas no arquivo “init.gp” e seguida por um arquivo:
um outro arquivo de comandos “grafico.gp”:
gnuplot -e "g=9.8; s='fig01.png'"
gnuplot init.gp - grafico.gp ֒→ graf.gp
Abra um terminal na pasta que contém o arquivo “test.gp” e chame o gnuplot. Já no ambiente
iterativo do gunplot, para rodar todas as instruções contidas no arquivo “test.gp” faça:
se x < 0
0
θ(x) =
1 se x > 0
passo(x) f(x)
g(x)
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
-10 -5 0 5 10 -10 -5 0 5 10
se
0 x<0
θf (x) = 0.5 se x=0
1 se x>0
f(x)
reset 1
g(x)
set yr[-0.1:1.1]
set grid
g(x) = x>0 ? 1 : 1/0 0.8
-0.2
-0.4
-0.6 2
x3 - 2xy + y3>0
1.5
-0.8
1
0.5
-1
0
y
-1 -0.5 0 0.5 1
-0.5
obtido com x
sen (x) se
0≤x<1
g(x) =
1/x se 1≤x<2
Para um arquivo de dados, faça um gráfico da média dos valores das colunas 2 e 3 em função dos
dados da coluna 1, mas somente se os dados da coluna 4 forem não negativos.
A função abaixo
se
f (x) = 3x − 40 2≤x≤6
H(x) =
g(x) = −x2 + 2x − 8 se Outros casos
-10
0
-20 Reta
Parabola
-10
-30
-20
-40
-30
-50
-40
-60
-50
-70
-60
-80
-70
-90
0 1 2 3 4 5 6 7 8 9 10
-80
-90
0 1 2 3 4 5 6 7 8 9 10
300
140
f(x)
250
120
100 200
80
150
60
100
40
50
20
0
0 -4 -2 0 2 4
-10 -5 0 5 10
35 55
50
30
45
40
25
35
20
30
25
15
20
10
15
10
5
0 0
-4 -2 0 2 4 -4 -2 0 2 4
w = 2
q = floor( tan( pi/2 - 0.1))
f(x) = sin(w*x)
sinc(x) = sin(pi*x)/(pi*x)
delta(t) = (t == 0) 0
ramp(t) = (t > 0) ? t : 0
min(a,b) = (a < b) ? a : b
-
comb(n,k) = n!/(k!*(n-k)!)
len3d(x,y,z) = sqrt(x*x+y*y+z*z)
-
set key top left
-
plot f(x)=sin(x*a), a=0.2, f(x) lw 2,
֒→ a=0.4, f(x) lw 2
-
-1
-10 -5 0 5 10
g q
gnuplot> test
? ,/
A@ 0
i B 2
= 3
< 4
C
t
5 s
6
0
/8
3
1 s
No gnuplot o comando “test”
i
d
g
1
i i i i i
1 s s
mostra todos os estilos e tamanhos possíveis.
t
7
!
i
1 e
i
E
0
s x
t
i
7
1
!
i
i
te
2
3
!
x i
4
n
0
Bold
! d
ll
g
5
Italic
1 1 1 1
7 7 7
31
30
25
24
23
22
21
20
15
14
13
12
11
10
-1
5
4
3
2
1
0
set key at -1, 0.9 Note que o gnuplot aceita abreviações dos
plot sin(x) with lines title 'linha',\ comandos assim:
sin(x/2) with points title
֒→ 'pontos',\ plot sin(x/2) w p
sin(x/3) with linespoints title plot sin(x/2) w l
֒→ 'linha+ponto',\ plot sin(x/2) w lp
sin(x/4) with dots lw 4 title plot sin(x/2) w d
֒→ 'pontilhada',\ plot sin(x/2) w i
sin(x/5) with impulses title
֒→ 'impulsos'
Temos ainda os seguinte comandos:
linewith ou lw define a largura da linha.
1
lLM
NO
pP
MQ
PR
FG
H
pré-definidos da linha.
J
FG
0
GK
DF
GJ
DF
GI
DF
DF
GH
-1
-4 -2 0 2 4
^_`
ab
plot sin(x) with lines lt 7 title
c
`fh
fj
XY
Z
k
c
`fh
f
^_`
ab
֒→ 'linha ',\
c
`fh
_^a
br
b
vc
^j
fj
_u
w
XY
[
sin(x/2) with points ps 3 lt 2
vc
^j
fj
_u
]
֒→ title 'pontos',\
XY
\
sin(x/3) with linespoints ps 2
XY
]
֒→ lt 1 title 'linha+ponto',\
sin(x/4) with dots lt 8 lw 4 0
֒→ title 'pontilhada',\
sin(x/5) with impulses lt 3
WX
Y]
֒→ title 'impulsos 1'
WX
Y\
replot sin(x/6) with impulses lw 3 lt 5
֒→ title 'impulsos 2'
WX
Y[
WX
YZ
-1
-4 -2 0 2 4
z
f(x,b)=sin(x/b)
z{
|
plot f(x,2)
set xrange [-2*pi:2*pi]
f(x)=sin(x*a)
z|
plot f(x), a=0.5
~
|{
|
set xrange [-2*pi:2*pi]
f(x,a)=sin(a*x)
plot f(x,0.5)
yz
{|
set key at -1.0,1.3
set xlabel '{/Helvetica-Oblique x}' -2 - 0 2
}
set ylabel '{/Helvetica-Oblique y}'
titulo(n) =
֒→ sprintf("sen({/Helvetica-Oblique
֒→ x/%d})", n)
set xrange[-2*pi:2*pi]
set yrange[-1.5:1.5]
set xtics ('-2{/Symbol p}' -2*pi,
֒→ '-{/Symbol p}' -pi, 0, '{/Symbol
֒→ p}' pi, '2{/Symbol p}' 2*pi)
set ytics 1
set ytics format "%3.1f"
set tics scale 0.75
set zeroaxis
f(x,n) = sin(x/n)
plot for [n=1:10:1] f(x,n) title
֒→ titulo(n)
1
(f($1,3)):(f($1,4)):(f($1,5)):(f($1,6)) 2
3
֒→ w xyerror 14 4
5
unset table
# Fim da geração do arquivo 12
֒→ 0:(column(i)+2*i) w l lw 1.5 t
֒→ titulo(i)
O arquivo, ’iter.dat’ é gerado com 6 parâmetros
diferente, de modo que a gaussiana seja 4
Física Computacional Prof. Salviano A. Leão
Usando o nome do arquivo especial "+", que 1. Pode-se usar o tipo de ponto usual.
gera um conjunto de coordenadas, que são
filtradas e o gráfico é feito usando o estilo de plot 2. Só se pode usar os valores dos eixos como
dos rótulos (ou pontos se nenhuma etiqueta for coordenadas (como primeiro ou segundo
solicitada: para os objetos acima).
֒→ NaN):(f(x1)):(sprintf('f(%.1f)',
֒→ x1)) \
20
with labels offset char 1,-0.2
֒→ left textcolor rgb 'blue' \
point linestyle 1 notitle
15
um xrange fixo.
Isso tem as vantagens (ou desvantagens?): 0
-4 -2 0 2 4
-1
0 2 4 6 8 10
reset
unset colorbox
unset key
set obj 1 rectangle behind from screen 2
֒→ rgbcolor "#cce5ff"
set xrange [0:10] 1
p(x,n) = 0.6*(1.0+sin(n*x))
0
n=21
dx=0.1
a=0.0
plot for [i=1:n] '+' using -1
֒→ ($1):(f($1,a+(i-1)*dx)):(p($1,2)) 0 2 4 6 8 10
¡
¢£
¤
2
¡
¢£
do for [i = 1:n] {
¥
¡
¢£
14 4
¡
¢£
x = x0+(i-1)*dx
¡
¢£
¦
6
¡
¢£
print x, f(x,1), f(x,2), f(x,3), 12
set print
set yrange [0:16] 8
֒→ t titulo(i-1)
4
reset # X Y
# Definição das cores 1 2
set border linewidth 1.5 2 3
set style line 1 lc rgb '#0060ad' pt 7 3 2
֒→ ps 2 lt 1 lw 2 # --- blue 4 1
unset key
4
# Eixos
set style line 11 lc rgb '#808080' lt 1
set border 3 back ls 11
¬
©
set tics nomirror out scale 0.75
3
# Grid
set style line 12 lc rgb'#808080' lt 0
lw 1
Ǭ
©
֒→
set grid back ls 12
2
ª
©¨
1
plot 'dados_01.txt' w p ls 1
§¨
Considere o arquivo de dados “dados_01.txt”, ©
dado por:
0
0 1 2 3 4 5
²®
¯
set style line 12 lc rgb'#808080' lt 0
֒→ lw 1 3
set grid back ls 12
±
¯®
set xrange [0:5]
set yrange [0:4] 2
a=0; b=0 1
plot 'dados_02.txt' u (x=x+$1):(y=y+$2)
֒→ w steps ls 2,\
®
¯
'' u (a=a+$1):(b=b+$2)
֒→ w points ls 1 0
0 1 2 3 4 5
¸´
µ
por: 3
# dados_03.txt
·
µ´
# deltaX deltaY
1. 2. 2
1. 0.
0. 1.
¶
µ´
1. 0.
0. -1. 1
1. 0.
0. -1.
³´
µ
-3. 0.
0. 1. 0
0 1 2 3 4 5
֒→ x*(a/a)}
y = sgn(-0.50+rand(0)) -3
a = int(10*rand(0)) -10 -8 -6 -4 -2 0
if (a == 0 ) { y=0} else { y =
֒→ y*(a/a)}
print x, y
}
set print
reset
plot "iter.dat" using 1:2
reset
plot "iter.dat" using ($1): ($2)
reset
plot "iter.dat" using ($1):($2) with lines lt 3 lw 6
Outras opções:
• using ($1):(($2 +$3)/2)
• using ($1):($2 +3*($3))
• using ($2):($5)/100
• using ($4):($2 * sin($1))/100
• Segunda, é para preencher a área entre as curvas e um dado eixo, seja um horizontal ou vertical
ou um ponto.
filledcurves closed preenche uma curva fechada.
filledcurves x1 eixo x1.
filledcurves x2 eixo x2.
filledcurves y=10 linha em y = 10, paralela ao eixo x.
filledcurves xy=2,4 ponto (2, 4) dos eixos x1, y1 (na forma de um arco).
filledcurves above r=2.5 em um plot polar, a área externa o círculo de raio 2.5.
• Terceira, é necessário um arquivo de dados com três colunas: uma coordenada x e as duas
coordenadas y correspondendo as duas curvas. A área entre as curvas é preenchida. A forma
do arquivo é
x y1 y2
Física Computacional Prof. Salviano A. Leão
Curvas preenchidas: Exemplos
¹º
»¼
set xrange [-xl:xl] 15
[-xl:xl] g(x) w l lw 2 lt 7
֒→ notitle,\ 5
֒→ notitle,\
f(x) w l lw 2 lt 6,\ -5
g(x) w l lw 2 lt 7
-10
½¾
¿
֒→ notitle,\ f(x)
¾
ÀÁ
[-x0:x0] g(x) w l lw 2 lt 7 14
֒→ notitle,\
12
[-2:2] '+' using 1:(f($1)):(g($1))
֒→ lt 5 with filledcurves closed
10
֒→ notitle,\
f(x) w l lw 2 lt 6,\ 8
g(x) w l lw 2 lt 7
6
• Gnuplot colors
0
• Table of colors -4 -3 -2 -1 0 1 2 3 4
30
set pointsize 0.8
set format x "%d/%m"
20
set border 11
unset x2tics
10
set xtics out nomirror
set key below
0
Data
Bloomberg MSN DowJones
Yahoo Google
Artigos
set timefmt "%Y-%m-%d"
30
set datafile separator ","
set ylabel "Artigos" 20
Muitos tipos de terminal suportam o modo de texto “enhanced” no qual informações de formatação
adicionais estão incorporadas na cadeia de texto. Por exemplo, "x^2"escreverá x2 . Este modo é
selecionado por padrão quando você configura o terminal, mas pode ser alternado depois usando
Uma seta pode ser colocada arbitrariamente em • <tag> é um inteiro que identifica a seta. Se
um gráfico como comando set arrow. A sua nenhuma tag for fornecida, o menor valor não
sintaxe é a seguinte utilizado de tag será atribuído
automaticamente. A tag pode ser usada para
set arrow {<tag>} from <position> to excluir ou alterar uma seta específica. Para
֒→ <position> alterar qualquer atributo de uma seta
set arrow {<tag>} from <position> rto
֒→ <position> existente, use o comando set arrow com a
set arrow {<tag>} from <position> tag apropriada e especifique as partes da
֒→ length <coord> angle <ang> seta a serem alteradas.
set arrow <tag> arrowstyle | as
֒→ <arrow_style> A posição da primeira extremidade da seta é
set arrow <tag> {nohead | head | sempre especificada por "de". O outro ponto
֒→ backhead | heads} final pode ser especificado usando qualquer
{size
֒→ <headlength>,<headangle>{,<backangle>}} um dos três mecanismos diferentes. Os
{filled | empty | <position> são especificados por x, y ou x,
֒→ nofilled | noborder}
{front | back}
y, z, e podem ser precedidos por primeiro,
{linestyle segundo, gráfico, tela ou caractere para
֒→ <line_style>} selecionar o sistema de coordenadas.
{linetype <line_type>}
֒→ {linewidth <line_width>}
Quando a coordenadas não é especificadas
o padrão é 0. Um especificador de sistema
unset arrow {<tag>} de coordenadas não vai da primeira
show arrow {<tag>}
descrição de ponto para a extremidade no
segundo.
Outras características da seta podem ser especificadas como uma seta predefinida ou fornecendo-as
no comando set arrow. Para uma explicação detalhada das características da seta, veja arrowstyle.
Para definir uma seta apontando da origem para Para desenhar uma linha vertical da parte
(1,2) com o estilo de linha 5 definido pelo inferior até o topo do gráfico em x = 3, use:
usuário, use:
set arrow from 3, graph 0 to 3, graph 1
set arrow to 1,2 ls 5 ֒→ nohead
Para definir uma seta da parte inferior esquerda Para desenhar uma seta vertical terminando
da área de plotagem para (-5,5,3) e identificar a com a forma-T use
seta com o número 3, use:
set arrow 3 from 0,-5 to 0,5 heads size
set arrow 3 from graph 0,0 to -5,5,3 ֒→ screen 0.1,90
Para alterar a seta anterior para terminar em Para desenhar uma seta relativamente ao ponto
1,1,1, sem uma ponta de seta e com o dobro de inicial, onde as distâncias relativas são dadas
sua largura, use: nas coordenadas do gráfico, use:
set arrow 3 to 1,1,1 nohead lw 2 set arrow from 0,-5 rto graph 0.1,0.1
set arrow 3 from screen .7, .14 to sin'''(x) = cos''(x) = -sin'(x) = -cos(x) sin''(x) = cos'(x) = -sin(x)
֒→ screen .4, .14 arrowstyle 1 1 1
֒→ -sin\'(x) = -cos(x)" -1 -1
-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
plot -cos(x)
set title "sin\'\'(x) = cos\'(x) =
֒→ -sin(x)"
plot -sin(x)
unset multiplot
reset
Nome='multiplot_02'
set term push
set terminal svg size 800,800 enhanced
֒→ fname 'Verdana,14' linewidth 2
֒→ background '#ffffff'
set output sprintf('%s.svg', Nome)
unset border
set multiplot
unset key
unset tics
unset raxis
set polar
set size 1, .5
plot [pi:2*pi] 1 lw 5, 0.2 with
֒→ filledcurves lt 4
set origin 0, .5
set size .5, .5
plot 1 lw 2, .2 with filledcurves
set origin .5, .5
plot 1 lw 2, .2 with filledcurves
unset multiplot
set output
set terminal pop
!inkscape -E ../multiplot_02.eps
֒→ multiplot_02.svg
0.2
-0.4
0 2 4 6 8 10 12
Temperatura [K]
0 2 4 6 8 10
6 -7
-6
5
-5
4
-4
dE/dλ [meV/nm]
Energia [eV]
3 -3
-2
2
-1
1
0
0 1
200 400 600 800 1000 1200 1400 1600 1800 2000
λ [nm]
Amplitude [a.u.]
unset table 30
Ä
Å
Æ
Ç
È
É
Ç
Ê
Æ
Ç
Ë
È
ata set 2
Ì
0.5
osition [m]
0
Ã
-0.5
-1
0 5 10 15 20
Time [s]
Í
Í
Î
3
4
amostrada de valores de dados em um plano em 2.5
Se a imagem possuir um canal alfa (tiver um fundo transparente), deve-se usar rgbalpha caso
contrário rgbimage.
# imagem_02.gp # imagem_03.gp
reset reset
Nome='Imagem_02' Nome='Imagem_03'
set term push set term push
set xrange [0:202] set xrange [0:202]
set yrange [0:243] set yrange [0:243]
set view 30,9,1,1
plot '../Figs/linux.jpg' binary splot '../Figs/linux.jpg' binary
֒→ filetype=jpg with rgbalpha notitle ֒→ filetype=jpg with rgbalpha notitle
set terminal epscairo enhanced color set terminal epscairo enhanced color
֒→ font 'Verdana,14' ֒→ font 'Verdana,14'
set output sprintf('../%s.eps', Nome) set output sprintf('../%s.eps', Nome)
replot replot
set term pop set term pop
set output set output
replot replot
250
200
300
150
250
200
100
150
100
50
50
250
0 0
200
-50 150
0.5
osition [m]
0
Ï
-0.5
-1
0 5 10 15 20
Time [s]
40
Nome='polar_espiral' t
replot
unset parametric
-30
!inkscape -E ../polar_espiral.eps
֒→ polar_espiral.svg
-40
3
reset
ÐÑ
Ò
ÓÔ
ÕÖ
ר
ÐÓ
ÔÕ
Nome='polar_01'
Ù
Ú
ÐÑ
Ò
ÓÔ
ÛÙ
Õ
ÜÝ
Þ
Ö
Þ
Ú
ר
ÐÓ
Ôß
Þ
Õ
ר
ÐÓ
Ù
Ú
ÔÕ
ÜÝ
Þ
Ö
ÐÑ
Ò
ÓÞ
Ú
ÔÕ
set term push
set terminal svg size 800,800 enhanced 2
reset
Nome='polar_atomo'
set term push
set terminal svg size 800,800 enhanced
֒→ fname 'Verdana,14' linewidth 2
֒→ background '#ffff99'
set output sprintf('%s.svg', Nome)
unset border; unset tics; unset key
set size square
set samples 800
set trange[0:4*pi]
set parametric
set xrang[-3:3]; set yrange[-3:3]
plot sin(t), cos(t) lw 2,\
cos(3*t) lw 2, sin(2*t) lw 2,\
3*sin(t-3) lw 2, 2*cos(t+2) lw 2,\
3*cos(t-3) lw 2, 2*sin(t+2) lw 2,\
3*cos(t) lw 2, 0.5*sin(t) lw 2,\
0.5*sin(t) lw 2, 3*cos(t) lw 2
set multiplot
ã
à
1
# plot the heatmap 120 60
set parametric
à
áã
set isosamples 500
unset border 0.8
150 30
unset xtics
unset ytics
à
áâ
set angles degree 0.6
r = 6
set urange[0:r] # radius 180 0 0.5
֒→ (cos(v)*besj0(2*u))**2
0.1
240 300
0
ä
â
à
å
æç
è
éê
ëç
ì
íî
ïð
ñå
ëí
ò
ð
îï
֒→ 1.00, lt 0 linewidth 1.000
set key title "raio limitante 2.5"
֒→ center
set key outside right top vertical
֒→ Right noreverse enhanced autotitle
֒→ nobox
set key noinvert samplen 0.7 spacing 1 0 1 2 3 4
֒→ width 0 height 0
set style textbox transparent margins
֒→ 1.0, 1.0 border
set polar; set samples 200
set size ratio 1 1,1
1 2
sin(x)
reset 2*cos(8*x)*exp(-x)
0.8
Nome='dois_eixos_01' 1.6
http://www.gnuplotting.org/tag/logscale/
reset
set isosamples 50,50
set grid
set format z "%4.2f"
f(x,y)=log(sqrt( x*x + y*y))
splot f(x,y)
Exemplo de Superfície
3.00
2.50
2.00
1.50
1.00
Eixo Z
0.50
0.00
−0.50
−1.00
−1.50
10
5
−10 0
−5 Eixo Y
0 −5
Eixo X 5
−10
10
Física Computacional Prof. Salviano A. Leão
set format Formato dos valores numéricos
set hidden3D No modo 3D, esconde o que fica atrás da superfície.
Exemplo de Superfície
reset
set isosamples 50,50
set grid
set xlabel "X"
set ylabel "Y"
set zlabel "Z" 1.00
Fita de Moebius
reset (2−v*sin(u/2))*sin(u),(2−v*sin(u/2))*cos(u),v*cos(u/2)
Nome='moebius_01'
load "salva_eps.gp"
set bar 1.000000 front
set style circle radius graph 0.02,
֒→ first 0.00000, 0.00000
set style ellipse size graph 0.05, 0.3
0.2
֒→ 0.03, first 0.00000 angle 0 units 0.1
֒→ xy 0
−0.1 2.5
set dummy u, v −0.2 2
1.5
set style textbox transparent margins −0.3
1
֒→ 1.0, 1.0 border 0.5
0
unset logscale −2.5 −2
−1
−0.5
−1.5 −1 −0.5
set parametric 0 0.5
−1.5
1 −2
set isosamples 51, 31 1.5 2 2.5 −2.5
set hidden3d back offset 1
֒→ trianglepattern 3 undefined 1
֒→ altdiagonal bentover
set style data lines
set view 45,22
set title "Fita de Moebius"
set urange [ 0.00000 : 6.28319 ]
֒→ noreverse nowriteback
set vrange [ -0.250000 : 0.250000 ]
֒→ noreverse nowriteback
#set colorbox vertical origin screen
֒→ 0.9, 0.2, 0 size screen 0.05, 0.6,
֒→ 0 front bdefault
splot
֒→ (2-v*sin(u/2))*sin(u),(2-v*sin(u/2))*cos(u),v*cos(u/2)
set output
set terminal pop
replot
Fita de Moebius
reset (2−v*sin(u/2))*sin(u),(2−v*sin(u/2))*cos(u),v*cos(u/2)
Nome='moebius_02'
load "salva_eps.gp"
set bar 1.000000 front 0.3
Se você tem um arquivo chamado sup.gp com o Você pode chamá-lo no gnuplot com o seguinte
seguinte conteúdo comando
reset gnuplot> load "sup.gp"
set grid
set xlabel "X"
set ylabel "Y"
set zlabel "Z"
set title "Exemplo de Superfície"
set ztics 0.50
set format z "%4.2f"
f(x,y)=sin(y/7)*cos(x/5)
set cntrparam levels incremental
֒→ -1,0.25,1
set contour base
set hidden3d
splot f(x,y) t ""
reset
set grid
set xlabel "X"
set ylabel "Y"
set zlabel "Z"
set title "Exemplo de Superfície"
set ztics 0.50
set format z "%4.2f"
f(x,y)=sin(y/7)*cos(x/5)
set cntrparam levels incremental -1,0.25,1
set contour base
set hidden3d
splot f(x,y) t""
pause -1
reset
set xlabel "X"; set ylabel "Y"; set zlabel "Z"
set title "Exemplo de Superfície"
set grid; set ztics 0.50
set format z "%4.2f"
f(x,y)=sin(y/7)*cos(x/5)
set cntrparam levels incremental -1,0.25,1
set contour base; set hidden3d
splot f(x,y) t""
pause -1 "Tecle Return Gerar Grafico EPS"
set terminal postscript landscape enhanced color lw 2 "Helvetica" 14
set out "sup.eps"
replot
set output # Volta a saida output para seu valor padrao
set terminal x11 # Volta para o terminal X11
!ls -ahl sup.eps # Lista o tamanho do arquivo gerado
pause -1 "Tecle Return Gerar Grafico FIG"
set term fig big color fontsize 14 thickness 2
set out "sup.fig"
replot
set output # Volta a saida output para seu valor padrao
set terminal x11 # Volta para o terminal X11
!ls -ahl sup.fig # Lista o tamanho do arquivo gerado
pause -1 "Tecle Return Gerar Grafico PNG"
set term png big color fontsize 14 thickness 2
set out "sup.png"
replot
set output # Volta a saida output para seu valor padrao
set terminal x11 # Volta para o terminal X11
!ls -ahl sup.png # Lista o tamanho do arquivo gerado
os possíveis terminais
Alguns exemplos:
Um arquivo png
set terminal png transparent nocrop enhanced size 450,320 font "arial,8"
set output 'Figura01.png'
#
# Terminal SVG
set terminal svg size 1024,768 dynamic enhanced "Helvetica 14" linewidth 1.8
set output "Figura01.svg"
#
# Agora o terminal para o postscript
set terminal postscript landscape enhanced color lw 2 "Helvetica" 14
set output "Figura01.eps"
Exemplo:
sin(x)
1
# aumenta espessura do contorno
set border linewidth 1.5
set xlabel '{/Helvetica-Oblique x}'
set ylabel '{/Helvetica-Oblique y}' 0
y
set xtics ('-2{/Symbol p}' -2*pi, \
'-{/Symbol p}' -pi,0, \
'{/Symbol p}' pi,'2{/Symbol p}'
֒→ 2*pi) −1
plot f(x) title
֒→ 'sin({/Helvetica-Oblique x})' \
with lines linestyle 1, \ −2π −π 0 π 2π
g(x) notitle with lines ls 2 x
Já o comando:
f2(x) = a2 *exp(-b2*x**2) # define a funcao para o ajuste
a2 = 20; b2 = 100; # chute inicial para a2 e b2
fit f2(x) 'dados.dat' using 1:3 via a2, b2
As barras de erro são suportados para gráficos 2D de arquivos de dados através da leitura de um a
quatro colunas adicionais (ou usando entradas); esses valores adicionais são usados de maneiras
diferentes pelos vários estilos de barras de erro.
Na situação padrão, o gnuplot espera ver três, quatro ou seis números em cada linha do arquivo de
dados, da seguinte forma:
(x, y, ydelta),
(x , Y, ylow, yhigh),
(x, y, xdelta),
(x, y, XLow, xhigh),
(x, y, xdelta, ydelta),
(X, Y, XLow, xhigh, ylow, yhigh)
A coordenada x deve ser especificada. A ordem dos números deve ser exatamente como dado
acima, embora o uso qualificador using possa manipular a ordem e fornecer valores para as
colunas ausentes. Por exemplo,
O último exemplo é para um arquivo que contém uma combinação não suportada de erros x e y
relativos e absolutos. O qualificador using gera o valor absoluto xmin e xmax do erro relativo.
Exemplo
print sum [i=1:10] i
• Comando do. Sintaxe
55.
do for <iteracao-spec> {
<comandos>
<comandos>
• Comando if. Sintaxe }
if (<condicao>) { <comandos>;
<comandos>
<comandos>
} else {
<comandos>
}
Oscilador Harmônico
reset 1
Partícula
set encoding utf8 Energia Cinética
set terminal qt enhanced Energia Potencial
ôø
ó
set parametric
set dummy t
n=3
np=501 # Numero de pontos
ó
ô÷
Volta=2*pi
T=n*Volta
dt=T/(np-1) # Discretização
ó
ôö
set trange [0:T]
set xrange [-1:1]
set yrange [-0.1:1]
set zeroaxis
ó
ôõ
do for[i=0:np]{
plot cos(t),cos(t)**2 with lines
֒→ notitle, \
0
cos(i*dt), cos(i*dt)*cos(i*dt)
֒→ with points lc 3 pt 7 ps 2 t
֒→ "Partícula",\ -1 0 1
óù
ôú
ôú
ó
1.0-abs(cos(i*dt)), 0.0 with
֒→ points lc 7 pt 7 ps 2 t "Energia
֒→ Cinética" ,\
0.0, cos(i*dt)*cos(i*dt) with
֒→ points lc 4 pt 7 ps 2 t "Energia
֒→ Potencial"
pause 0.1
}
ou
plot for [var in 'algumas palavras do tipo string']
reset
f(x,a) = exp(-(x-a)*(x-a)/(1+a*0.5))+0.05*rand(0)
title(n) = sprintf("column %d", n)
set table 'iter.dat'
plot [0:20] '+' using \
(f($1,1)):(f($1,2)):(f($1,3)):(f($1,4)):(f($1,5)):(f($1,6)) w xyerror
unset table
#
set yrange [0:15]
plot for [i=1:6] 'iter.dat' u 0:(column(i)+2*i) w l lw 1.5 t title(i)
!rm 'iter.dat' #apag arquivo gerado
reset
unset colorbox
unset key
set xrange [0:10]
set cbrange [0:1]
plot '+' using ($1):(sin($1)):(0.5*(1.0+sin($1))) with lines lw 3 lc palette, \
'+' using ($1):(sin($1)+2):($1/10.0) with lines lw 3 lc palette
reset
arquivos = "dados1 dados2 dados3 dados4 dados5"
plot for [file in arquivos] file using 1:2 with lines
ou
reset
arquivos = "dados1 dados2 dados3 dados4 dados5"
plot for [file in arquivos] file."dat" using 1:2 with lines
ou
reset
arquivos(n) = sprintf("dados_%d", n)
plot for [i=1:10] arquivos(i) using 1:2 with lines
e o arquivo de iteração
56 - - 7 - 84988 5 : ; <
, -
. (( " ( /
, '
.
4
"
# $
% & '
"
$ *+
01
0 !
$ (($
0 /
0 !
2/
' "
2 3
.
(
-+
**
'
/
)
!
-
(