/ / GNUPLOT configuração cbrange - imagem, matriz, condicional, gnuplot, paleta

Configuração de GNMBLOT cbrange - imagem, matriz, condicional, gnuplot, paleta

Eu estou usando o gnuplot para plotar uma matriz com os seguintes comandos:

ub = 1
lb = -ub
set cbrange [lb:ub]
set palette defined (lb "red", 0 "white", ub "blue)
plot "mydata.dat" matrix ind 19 with image

Isso me dá uma matriz que parece ótima. Mas também quero uma figura que contenha apenas os pontos com valor no domínio (0,8: 1) e (-1: -0,8). Eu acho que a probabilidade pode alterar o cbrange ou alterar a definição da paleta. Mas não tenho ideia de como. Alguém pode me mostrar como fazê-lo (de qualquer maneira)? Obrigado.

Respostas:

1 para resposta № 1

Em geral, o valor numérico dado a set palette defined Faz não definir valores absolutos, mas são usados ​​apenas para o cálculo de gradiente e são mapeados para [0, 1]. Isso significa que e.

set palette defined (-1 "red", 0 "white", 1 "blue")

e

set palette defined (100 "red", 200 "white", 300 "blue")

são completamente equivalentes. O intervalo escolhido com set cbrange é então mapeado para este intervalo de unidade.

Então, para mostrar apenas o intervalo [0.8:1], tudo no mesmo azul-sombreado como no enredo completo, você pode verificar e limitar o valor do terceiro, a coluna de cor:

set palette defined (-1 "red", 0 "white", 1 "blue)
ub = 1
lb = -ub
set cbrange [lb:ub]
plot "mydata.dat" matrix using 1:2:($3 >= 0.8*ub ? $3 : 0) ind 19 with image

Isso definiria todos os valores abaixo 0.8*ub para 0e mostra apenas os valores acima 0.8*up Em azul.

Se você definir o intervalo de cores para [0.8:1], os valores 0.8 seria mostrado em vermelho, e 1 Em azul.

Assim, mostrar apenas o intervalo [-1:-0.8], usar

plot "mydata.dat" matrix using 1:2:($3 <= 0.8*lb ? $3 : 0) ind 19 with image