GNUPLOT

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

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

О 3D построениях (No.1)

1 | 2 | 3 | 4

Почему начало оси Z не на плоскости XY?

В splot, нулевая точка оси Z размещается выше плоскости XY. Чтобы переместить начало координат на плоскость XY, используется set ticslevel . Когда ticslevel=0, ноль оси Z перемещается на плоскость XY.

gnuplot> set ticslevel 0
gnuplot> splot (x**2)*(y**2)
fig/sample6.1
up

Я хочу сделать тонкой поверхность сетки координат

В 3D построении, размер ячейки (координата XY) определяется isosample. Чем меньше значение, тем толще сетка. По умолчанию это 10.

Если сетка координат слишком толстая, это может придать проблемы, когда скрытые линии установленны командой set hidden3d. Следующий пример показывает 3D построение функции z=sin(x)*cos(y) с isosample равным 10. Верхний рисунок без скрытого удаления, нижний с ним .

fig/sample6.2a fig/sample6.2b

Чтобы избежать данной проблемы, устаноовите значение isosample больше. Далее установите его на 40. Чтобы сетки X и Y meshes различались, попробуйте set isosample 20,40.

gnuplot> set isosample 40
fig/sample6.2c fig/sample6.2d
up

Как изменить точку наблюдения?

Точка обзора в 3D построениях контролируется командой set view. По умолчанию настройки:

gnuplot> show view

        view is 60 rot_x, 30 rot_z, 1 scale, 1 scale_z

Изначально (перед вращением), экран параллелен плоскости XY и перпендикулярен оси Z.

fig/sample6.3a

Сначала, ось X вращается до 60 градусов (rot_x), затем наклон оси Z.

fig/sample6.3b

Далее, новая ось Z вращается до 30 градусов (rot_z). Это точка наблюдения которую splot использует по умолчанию.

fig/sample6.3c

Команда set view вращает график.

fig/sample6.3d Угол обзора 60,15
fig/sample6.3e Угол обзора 60,45
fig/sample6.3f Угол обзора 60,75
fig/sample6.3g Угол обзора 15,30
up

Как изменить линии уровня?

Линиями уровня управляет команда set cntrparam.

gnuplot> set contour
gnuplot> set cntrparam levels 10
gnuplot> set cntrparam levels incremental -1, 0.2, 1
gnuplot> set cntrparam levels discrete -0.2, -0.5, 0.2, 0.5

Пример выше показывает три способа управления контурами. Ключевое слово levels определяет уровень контурных линий. Выше levels 10 показывет, что отображено 10 линий. Далее, incremental определяет начальное, приращение, конечное значения. Так же можно определить высоту, на которой будут отбражены линии, командой levels discrete.

Легенда для линий уровня размещается в легенде графика. Чтобы стереть легенду линий уровня, используется команда set noclabel . В данном примере контурные линии такие же, как и внешнии линии на построении.

Линии уровня далее будут использоваться на поверхности. Нет никакой возможности произвольно управлять видами линий. Придется использовать внешние инструменты, как наприемр Tgif, чтобы редактировать стиль линий.

up

Я хочу нарисовать контуры только от 2D построения

Если точка обзора выше плоскости XY, то получаем контуры 2D построения. Сначала, устанавливаем точку обзора 0,0 при помощи set view 0,0 и указываем set nosurface, чтобы скрыть поверхность.

gnuplot> set contour base
gnuplot> set nosurface
gnuplot> set view 0,0
fig/sample6.5a
Точка обзора 60,30
fig/sample6.5b
Точка обзора 0,0

Ось Y становиться правосторонней командой set view 0,0. Если необходимо сделать ее левосторонней, используется set view 180,180. В этом методе подписи Y становятся горизонтальными. Если необходимо сделать их вертикальным, используется "table" как указанно ниже.

Можно сделать 2D построение лучше, используя терминал table. Контурные линии единожды пишутся в файле данных командой set term table, которая производит 2D данные различных контурных линий. См. пример в галерее.

gnuplot> set term table
gnuplot> set output "table.dat"
gnuplot> replot
gnuplot> set output
gnuplot> set term x11
gnuplot> plot "table.dat" using 1:2 with lines

[ver.4] ТОЛЬКО !

2D построение с цветной картой легко может быть сделано с терминалом pm3d.

up