Não use o comando replot
, use a vírgula em vez de ,
Como em seu script não vejo razões aparentes para precisar usar o comando replot
, sugiro usar diretamente a vírgula ,
para separar as duas curvas a serem plotadas: plot sin(x), cos(x)
por exemplo.
Tome isso como um bom hábito, mas é mais, é diferente em princípio (veja abaixo).
Você pode achar interessante colocar \
como último caractere para dividir uma única linha (observe que é necessário que não haja espaços em branco ou outros caracteres depois). Isso torna o script mais limpo.
# ...
set style data linespoint # To avoid to repeat it on each line of plot command
# Note below no spaces after the '\'
plot "<(sed -n '2,6p' sandbox_gp_pure.data)" using 3:4 \
, "<(sed -n '7,11p' sandbox_gp_pure.data)" using 3:4
Com o comando replot
em vez disso você plota novamente cada curva já presente no gráfico (relendo os dados e executando novamente todas as operações seguintes) e somente após você traçar a nova curva.
É um bom hábito porque usando novamente seu roteiro amanhã, você pode ter um desaceleração geral de seu processo de trabalho quando os arquivos são muitos, enormes ou sistema de arquivos remoto; quando você executa operações longas para processar os dados; quando os pontos efetivamente plotados são muitos e você precisa esperar a atualização gráfica da janela ainda mais se você estiver trabalhando através de uma ssh -X
connection ...
Além disso, no terminal como pdfcairo
com
set terminal pdfcairo; set output 'my.pdf' ;
plot sin(x)
replot cos(x)
set output ; set terminal qt # or whatever is your default terminal
você obterá um documento de 2 páginas e um arquivo pdf maior.
Nota: Você pode usar a palavra-chave every
sem precisar criar subshells ()
e chamar programas externos, como sed
. Se você não puder pré-encomendar eles com um tipo , você pode adicionar smooth unique
à trama o conjunto de dados com o estilo linespoints
que ama entradas ordenadas pela coordenada x
.
plot "sandbox_gp_pure.data" every ::1::5 us 3:4 t "set 1" w linesp \
, '' every ::6::10 us 3:4 t "set 2" w linesp
Ou se você quiser que eles sejam pedidos
plot "sandbox_gp_pure.data" every ::1::5 u 3:4 smooth unique t "set 1" w linesp\
, '' every ::6::10 u 3:4 smooth unique t "set 2" w linesp
Outra vantagem é a portabilidade. Ele funcionará mesmo quando sed
não estiver instalado e funcionar mesmo no Windows.
Você pode notar a mudança no número da linha porque começa a partir de 0
.
The first datum in each block is numbered '0', as is the first block in the file.
O gnuplot help replot
output:
The
replot
command without arguments repeats the lastplot
orsplot
command. This can be useful for viewing a plot with differentset
options, or when generating the same plot for several devices.Arguments specified after a
replot
command will be added onto the lastplot
orsplot
command (with an implied ',' separator) before it is repeated.