Gnuplot pm3d - 将gamma设置为第4维

时间:2014-12-11 18:57:33

标签: gnuplot

我在gnuplot中使用pm3d设置来在我的模拟中可视化波函数的密度。此外,最近我可视化第二个数据,我的波函数的相位(cos ^ 2更精确)。一切都在2d图上,依赖于x空间坐标和时间。这是一个例子:

something

我的问题是,我可以将两个数据变量合并到一个图中吗?我正在考虑根据密度调整伽马水平。我能用几个命令得到它吗?

1 个答案:

答案 0 :(得分:2)

绘制with image的好处是第三维自动映射到彩色调色板。但是,调色板只是一维的,没有办法使它成为二维的。

解决方案1 ​​

使用情节样式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的映射。

解决方案2

另一个想法:使用多重绘图覆盖两个图。第一个是通常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

enter image description here