GNUPLOT

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

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

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

1 | 2 | 3 | 4

Как нарисовать цветную 3D фигуру?

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

Gnuplot рисует 3D фигуры с линиями и/или точками, кроме того, ver.3.8 или 4.0 позволяет рисовать цветные 3D фигуры настройкой pm3d . Фигура отображается так же хорошо, как и PostScript или другой фомат изображения, как PNG/JPG.

gnuplot> set xrange [-2:2]
gnuplot> set yrange [-2:2]
gnuplot> set pm3d
gnuplot> splot exp(-x*x)*exp(-y*y)
fig/sample6.7a

Можно выбрать цветное или бесцветное изображение опцией color/monochrome. Бесцветную фигуру можно нарисовать при помощи set palette gray , но в этом случае внешние линии сетки все еще цветные. Далее два примера для терминала PostScript.

gnuplot> set term postscript eps enhanced color
gnuplot> set output "color.eps"
gnuplot> replot
gnuplot> set term postscript eps enhanced monochrome
gnuplot> set output "mono.eps"
gnuplot> replot
fig/sample6.7b fig/sample6.7c
up

Я хочу нарисовать цветные линии уровня.

[ver.4] ONLY !

Контурную карту gnuplot отображает линиями. Цветной контур pm3d - несколько распространенных цветных плотностей, которые означают, что каждый кусок цветной поверхности отчетливо наносится на карту снизу/сверху. Чтобы нанести снизу, добовляется опция at b в команду set pm3d .

gnuplot> set pm3d at b
gnuplot> set ticslevel 0.8
gnuplot> set isosample 40,40
gnuplot> splot x*x*exp(-x*x)*y*y*exp(-y*y)
fig/sample6.8a

С pm3d легко увидеть нижнюю поверхность с 2D построением.

gnuplot> set pm3d map
gnuplot> splot x*x*exp(-x*x)*y*y*exp(-y*y)
fig/sample6.8b
up

Псевдо 3D гистограмма.

С тех пор как gnuplot больше не может рисовать 3D гистограммы, необходимо немного его обмануть. Для примера возьмем следующие 3D данные.

# X     Y    Z
  0.0   0.0  2.0
  0.0   1.0  3.5
  1.0   0.0  1.0
  1.0   1.0  3.0

Первая линия подразумевает Z=2 когда 0< X <1, 0< Y <1 и это соответствует области (1) в следующей фигуре. Файл данных не содержит максимальных значений. ДиапазонЫ X и Y предпологаются как 1< Y <2, 1< Y <2 и значения Z=3.0. Создаем 3D гистограмму подобную этой.

fig/sample6.9

Сейчас расширяем данные некоторыми программами/инструментами. См. рисунок выше в X=0, значение Y - шаг функции изменяющийся Y=2.0, 2.0, 3.5 и 3.5. Этот шаг функции отображается как линия в 3D пространстве. Это же рассматривается для X=1 и X=2.

# X     Y    Z
  0.0   0.0  2.0
  0.0   1.0  2.0
  0.0   1.0  3.5
  0.0   2.0  3.5

  1.0   0.0  2.0
  1.0   1.0  2.0
  1.0   1.0  3.5
  1.0   2.0  3.5

  1.0   0.0  1.0
  1.0   1.0  1.0
  1.0   1.0  3.0
  1.0   2.0  3.0

  2.0   0.0  1.0
  2.0   1.0  1.0
  2.0   1.0  3.0
  2.0   2.0  3.0

Как только данные будут подготовлены описанным образом, они будут изображены линиями. Программа, обрабатывающая данные, может быть ... домашним заданием.

gnuplot> set hidden3d
gnuplot> splot "test.dat" with lines
fig/sample6.9a
up

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

Gnuplot ver.4 может воспроизводить забавные фигуры при помощи pm3d.

gnuplot> set pm3d
gnuplot> splot "test.dat" with pm3d
fig/sample6.9b
up