В моих симуляциях у меня есть две числовые сетки, которые перекрывают друг друга.Один из них (меньший) не является прямоугольным, но имеет изогнутую границу (по крайней мере, область, в которой я забочусь об этом).
Я хотел бы визуализировать эти две числовые сетки и то, как они перекрывают друг другав gnuplot как 2D-сюжет.Результат должен выглядеть примерно так:
Красная сетка охватывает всю область, черная сетка является подмножеством красной с изогнутойграница.Синяя линия является приближением границы.
Пока это выглядит хорошо, за исключением того факта, что это 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
Синяя линия на графике является дополнительной и происходит из отдельного приближения границы сетки, но не имеет отношения к данному вопросу.