Não consigo splot with, pm3d map, my data file? Gnuplot

0

Eu tenho um arquivo de dados, (.tab com 11 colunas e ~ 30000 linhas) e quando eu vou no gnuplot, eu escrevo:

defina o mapa pm3d

splot "merged.tab" u x: y: z

e diz:

Aviso: O isolamento único (scan) não é suficiente para um gráfico do pm3d.        Dica: faltando linhas em branco no arquivo de dados? Veja 'help pm3d' e FAQ.

em outros arquivos, funciona, mas eu não sei porque não funciona neste: (

Eu tenho que editar os arquivos? obter as colunas que eu quero? Mas eu não posso fazer isso através de arquivos .tab?

Qualquer ajuda é apreciada

    
por Billy Matlock 05.04.2017 / 18:08

2 respostas

1

Seu arquivo de dados deve ter o formato de grade apropriado (xyz ou matriz - > esses dois links devem esclarecer [1] , [2] . Seguindo o formato xyz, sua coluna x deve ser organizada de forma que haja uma linha em branco entre cada alteração no valor x.

Por exemplo, um formato de grade xyz é:

# X   Y    Z
  0   0    0
  0   1    1
  0   2    4
  0   3    9
  0   4   16
  0   5   25

  1   0    1
  1   1    2
  1   2    5
  1   3   10
  1   4   17
  1   5   26
  ... ... ...

A razão para este formato de grade é que você planeja plotar uma projeção 2D de isolinhas de contorno desde que você use pm3d map .

No entanto, observe que, se o seu arquivo de dados contiver dados, por exemplo Como resultado de uma função, isso não significa necessariamente que eles têm um formato de grade e você tem que encontrar uma maneira de programação para dar a eles esse formato. Talvez esse formato de TAB, que eu não conheço, tenha dados no formato "grid" e precise apenas da classificação de x column e da adição de linhas em branco.

    
por KosZer 23.06.2018 / 01:30
0

copie e cole a resposta do link

% bl0ck_qu0te%
/^[[:blank:]]*#/ {next} # ignore comments (lines starting with #)  
NF < 3 {next} # ignore lines which don’t have at least 3 columns  
$1 != prev {printf ~\n~; prev=$1} # print blank line  
{print} # print the line
% bl0ck_qu0te%

No entanto, minha versão do awk não entende esse código. Em vez disso, tive que substituir a terceira linha por

$1 != prev {printf "\n"; prev=$1} # print blank line  
    
por derwodamaso 23.10.2017 / 13:49