Coloque um registro vazio (linha em branco) onde não há dados. Dos documentos :
Single blank records designate discontinuities in a plot; no line will join points separated by a blank records (if they are plotted with a line style).
Eu tenho um valor associado a cada dia, como tal:
120530 70.1
120531 69.0
120601 69.2
120602 69.5
# and so on for 200 lines
Ao plotar estes dados no gnuplot com linhas, os pontos de dados são bem conectados. Infelizmente, em locais com mais de uma semana de pontos de dados pode estar faltando. O Gnuplot desenha linhas longas nesses intervalos. Como posso fazer o gnuplot apenas conectar pontos em dias consecutivos?
As soluções que exigem o pré-processamento dos dados são boas, já que eu o aliso com um script.
Aqui está o que eu uso:
set xdata time
set timefmt "%y%m%d"
plot "vikt_ma.txt" using 1:2 with lines title "first line", \
"" using 1:3 with lines title "second line"
Exemplo:
Coloque um registro vazio (linha em branco) onde não há dados. Dos documentos :
Single blank records designate discontinuities in a plot; no line will join points separated by a blank records (if they are plotted with a line style).
Você pode usar qualquer string que não seja um número como valor para os pontos de dados ausentes ou especificar explicitamente uma string de dados perdida usando o comando set datafile missing
.
Se você planeja as linhas usando
plot "vikt_ma.txt" using 1:($2) with lines title "first line"
então o Gnuplot deixará uma lacuna.
Você também pode fazer algo assim para criar lacunas automaticamente quando a distância entre os valores x exceder algum limite:
previous=1
current=1
shift(x) = (previous=current, current=x)
yornothing(x,y) = ( shift(x), abs(x-previous)<7200?y:sqrt(0/0))
plot "file.dat" using 1:(yornothing($1,$2)) with lines
Você precisará ajustar os valores iniciais de "anterior" e "atual", e o limite ("7200" no exemplo acima).
A função "yornothing" usa a função "shift" para armazenar um valor anterior de x. Cada vez que se chama yornothing, ele retorna o valor de y ou "0/0", dependendo se o valor absoluto valor da diferença entre x e seu valor anterior excede o limite.
Um valor de 0/0 diz ao gnuplot para ignorar esse ponto.
Tags gnuplot