GNUPLOT

-не так Часто Задаваемые Вопросы-

обновлено 2010/12/26

3D построения с цветной картой (pm3d)

1 | 2 | 3 | 4

Как изменить цвета 3D фигуры?

[ver.4] ONLY !

По умолчанию pm3d использует цветную карту, изменяющуюся от черного до желтого сквозь синий и красный. Чтобы изменить этот градиент, используется команда set palette . Чтобы управлять цветной картой, необходимо добавить некоторые опции. Предпологается, что имеется функция (или данные) со значениями Z изменяются от -3 до 1. Функция f(x,y) = (2*sin(x)-1)*exp(-y). Теперь используем красный для максимального значения (Z=1), синий - для минимального значения (Z=-3), а другие цвета не будем использовать Z=0.

gnuplot> set ticslevel 0
gnuplot> set pm3d
gnuplot> set palette defined (-3 "blue", 0 "white", 1 "red")
gnuplot> splot (2*sin(x)-1)*exp(-y) with pm3d
fig/sample6.10a

Pm3d интерполирует цвета между двумя определенными точками Z. В примере приведенном выше, цвета изменялись от синего к белому в диапазоне Z от -3 до 0.

В этом примере, цвет для Z=0 такой же как цвет фона - белый. Такая цветная карта полезна, когда необходимо потускнение некоторой области, в которой данные не так важны. Например, в 2D построении необходимо исключить область с нулевой плотностью. Это можно понять по примеру приведенному выше, если проектировать 3D данные на 2D пространство. Отрицательную область показывает синий, положительную - красный, а другая область выглядит пустой.

gnuplot> set pm3d map
gnuplot> replot
fig/sample6.10b
up

Другой метод - использование опции rgbformulae, придерживающейся трех целых значений. Эти значения используются для трех цветов -- красный(R)/зеленый(G)/синий(B), и каждый номер - индекс некоторых стандартных функций. Например rgbformulae 0,0,3 означает, что gnuplot не использует красный и зеленый, но высота значений Z выражается линейной цветной вариацией от черного к синему.

Есть 37 функций изменения цвета, имеющие индекс от 0 до 36. Индекс функции равный трем 3, использованный в примере выше, - простая линейная функция (по умолчанию). Gnuplot устанавливает значения 7,5,15, где функция 7 - sqrt(x), 5 - x^5 и 15 - sin(360x). Определенные этими индексами функции можно увидеть при помощи show palette rgbformurae.

Вообще, получить подходящую цветовую политру командой palette rgbformulae тяжело. Однако, команда help palette rgbformulae может дать некоторые намеки. Например, комбинация 33,13,10 - "радуга", подобная этой.

gnuplot> set palette rgbformulae 33,13,10
gnuplot> splot -x*x with pm3d
fig/sample6.10c

Другая помощь в окраске Gnuplot рекомендуется здесь:

fig/cb1
fig/cb2
fig/cb3
fig/cb4
fig/cb5

Сейчас получим другую "радугу"

gnuplot> set pm3d map
gnuplot> set size square
gnuplot> set palette rgbformulae 22,13,-31
gnuplot> splot -(x*x+y*y)
fig/sample6.10d
from Martin in Czech Republic. Thanks !
up