【发布时间】:2020-04-16 08:43:03
【问题描述】:
我尝试使用参数 m 和 n 再现显示横向电磁 (TEM) 模式强度分布的图像。我使用了曲面图的 4x4 多图矩阵。结果让我很满意。只是为了完整起见:
- 您将如何添加轴而不是为每个图单独标题?
- 有没有办法像原始图像一样仅在一个方向上显示表面上的等值线?
- 原作者省略了多图的下部以强调对称性。我不确定这是否真的说明了这一点。我应该只显示完整的矩阵还是您能想出更好的方法?
解决方案
谢谢大家。有了你的建议,我现在有了以下图片:
从 Qt 终端输出以下代码:
m=n=3 # max. 3
THETA=2.5
set hidden3d trianglepattern 2
set isosamples 50
set xrange [-THETA:THETA]
set yrange [-THETA:THETA]
set view 70,55,,.5
unset border
unset key
unset tics
H0(x)=1
H1(x)=2*x
H2(x)=4*x**2-2
H3(x)=8*x**3-12*x
set multiplot layout n+1,m+1 upwards margins .14,.9,.14,.9 spacing .05 \
title 'Intensitätsverteilungen der Laguerre-Gauß-Moden' font ",16"
do for [i=0:n] for [j=0:m] {
eval sprintf("splot (H%d(sqrt(2)*y)*exp(-y**2))**2\
* (H%d(sqrt(2)*x)*exp(-x**2))**2\
with lines lc %d", i, j, abs(i-j)+1)
}
set origin 0,0
set size 1,1
unset margins
set title ' '
set arrow from 0,-.5 to graph 1,0
set arrow from -.5,0 to graph 0,1
set label at .5, .5 "dreh-\nsymmetrisch" center rotate by -37
set arrow from .7,0 to .1,.6
set tics out nomirror
set xtics 0, 1, n
set ytics 0, 1, m
set xrange [-.5:n+.5]
set yrange [-.5:m+.5]
set xlabel offset graph .5,0 "n"
set ylabel offset graph 0,.5 "m" norotate
plot NaN
unset multiplot
- 我没有手动添加轴,而是在顶部绘制了一个适当缩放的 2D 图。因此,参数 m 和 n 的轴比例不是 3。为了支持更高阶,必须根据 Hermite 多项式添加 Hn(x); n=1, 2, 3, ... 并且可能需要调整多图的边距。
- 事实证明,提供
set hidden3d trianglepattern 2是让等值线仅显示在一个方向上的最简单方法。 - 颜色应该有助于制作成对的旋转对称图形。人们可能会争论美学,但希望传达的信息。
【问题讨论】:
-
要在表面上仅在一个方向上显示等值线,请使用
set hidden3d trianglepattern 2和set isosamples 50。
标签: gnuplot