我在gnuplot中使用pm3d设置来可视化仿真中的波动函数密度。另外,最近,我还可视化了第二个数据,即波动函数的相位(更精确地说是cos ^ 2)。一切都在2d图上,并且与x空间坐标和时间有关。这是示例:
我的问题是,我可以将两个数据变量都放入一个图吗?我当时正在考虑根据密度调整伽玛水平。我可以通过几个命令得到它吗?
绘制的好处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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句