我在gnuplot中使用pm3d设置来在我的模拟中可视化波函数的密度。此外,最近我可视化第二个数据,我的波函数的相位(cos ^ 2更精确)。一切都在2d图上,依赖于x空间坐标和时间。这是一个例子:
我的问题是,我可以将两个数据变量合并到一个图中吗?我正在考虑根据密度调整伽马水平。我能用几个命令得到它吗?
答案 0 :(得分:2)
绘制with image
的好处是第三维自动映射到彩色调色板。但是,调色板只是一维的,没有办法使它成为二维的。
使用情节样式rgbimage
:
plot "data" using x:y:r:g:b with rgbimage
每个数据点需要三列来定义红色,绿色和蓝色组件,因此您可以获得三个维度来为您的绘图着色。 每个组件必须在[0:255]范围内,因此您需要处理缩放。
你可以提供r,g,b值。
如果您想显示复数,可以查看HSV(色调饱和度值)色彩空间:
(图片http://www.texample.net/tikz/examples/hsv-shading/)
色调是此图中的角度(非常适合极性分量),饱和度决定从白色到完全饱和色的径向颜色等级(适合幅度) )。 值始终为1.
但我不得不说,将HSV转换为RGB(即你的复数到RGB)的公式并不那么容易,但你会在网上找到它们。可能是,您还可以找到另一个简单的复杂值到RGB的映射。
另一个想法:使用多重绘图覆盖两个图。第一个是通常with image
,第二个是with rgbalpha
。此类型与上面描述的with rgbimage
类似,但附加列指定了颜色的透明度(同样,范围[0:255])
在这里,我用第一个图(垂直图案)覆盖了纯白色图层和水平透明图案:
# for using the '++' below
set isosamples 1000
set yrange[-4:4]
set xrange[-4:4]
# The box would need manual adjustment. I left it out there
unset colorbox
set multiplot
plot '++' u 1:2:(sin($1)) w image
plot '++' u 1:2:(255):(255):(255):(127+127*sin($2)) w rgbalpha
unset multiplot