Визуализируйте сетку в 2D графике / проекции (gnuplot) - PullRequest
0 голосов
/ 21 февраля 2019

В моих симуляциях у меня есть две числовые сетки, которые перекрывают друг друга.Один из них (меньший) не является прямоугольным, но имеет изогнутую границу (по крайней мере, область, в которой я забочусь об этом).

Я хотел бы визуализировать эти две числовые сетки и то, как они перекрывают друг другав gnuplot как 2D-сюжет.Результат должен выглядеть примерно так:

enter image description here

Красная сетка охватывает всю область, черная сетка является подмножеством красной с изогнутойграница.Синяя линия является приближением границы.

Пока это выглядит хорошо, за исключением того факта, что это 3D-график, на который я смотрю точно сверху;то есть в gnuplot я могу повернуть его, если захочу.

gnuplot> show view
    view is 0 rot_x, 270 rot_z, 1 scale, 1 scale_z

Если смотреть под этим углом, никакая информация по оси z не видна.Это как бы устраняет причину трехмерного графика, поскольку все, что вы можете видеть, - это сетки, на которых живут ваши данные.И это именно то, что я хочу.

Но тогда у меня есть 2D-график, поскольку он более эффективен для обработки в gnuplot, а также gnuplot генерирует огромный запас вокруг 3D-графиков, что уменьшает полезную площадь.Как я могу спроецировать эту сетку в 2D-плоскость и получить gnuplot для ее визуализации?


Как создать график выше: у меня есть одна переменная, которая определена на всей сетке, но отлична от нуля(и всегда положительный) только на черной части сетки.Данные хранятся в файле «values.dat» обычным способом - в трех столбцах в полярных координатах:

r (радиус) - тета (полярный угол) - значение

Тогда вы можете получить график выше с помощью:

set style line 1 lt 1 dt 3 lc rgb "red"
set style line 2 lt 1 lc rgb "black"
set view 0, 270, 1, 1
splot "values.dat" u 1:2:(1.0) w l ls 1, \
      "values.dat" u 1:2:($3>0.0?1.0:NaN) w l ls 2

Синяя линия на графике является дополнительной и происходит из отдельного приближения границы сетки, но не имеет отношения к данному вопросу.

1 Ответ

0 голосов
/ 22 февраля 2019

Команда gnuplot

set view map

делает именно то, что я хочу.

Из документации gnuplot:

Поддерживается как 3D-проекция, так и ортогональная 2D-проекцияв 2D-карту, похожую на сюжет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...