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 № 1Em 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 0
e 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