wpm*_*wpm 4 transparency alpha gnuplot palette
使用调色板时有没有办法绘制透明数据点?
我目前有以下代码:
set style fill transparent solid 0.2 noborder
set palette rgb 22,13,-22
plot 'mydata.dat' u 1:2:3 ps 0.3 palette
Run Code Online (Sandbox Code Playgroud)
我的感觉是透明度被 plot 命令的参数覆盖了。
使用调色板时有没有办法绘制透明数据点?
如果您检查,help palette您将找不到(或我忽略)关于调色板透明度的声明。看起来您可以以不同的方式为 设置调色板RGB,但不能为ARGB(A=alpha 通道透明度)。因此,我认为调色板不可能具有透明度(如果我错了,请纠正我)。作为解决方法,您必须通过设置具有一定透明度的颜色来“手动”设置透明度。您可以通过键入找到调色板背后的公式show palette rgbformulae。
下面的示例创建了一个在xrange[0:1]和 中具有随机点位置yrange[0:1]和随机点大小(从 2 到 6)和随机透明度(从0x00到0xff)的图。颜色由x您的“手动调色板”决定。我希望您可以根据自己的需要调整此示例。
代码:
### "manual" palette with transparency
reset session
# These are the rgb formulae behind palette 22,13,-22
set angle degrees
r(x) = 3*x-1 < 0 ? 0: (3*x-1 > 1) ? 1 : 3*x-1
g(x) = sin(180*x)
b(x) = 1-(3*x-1) < 0 ? 0: (1-(3*x-1) > 1) ? 1 : 1-(3*x-1)
set xrange [0:1]
set yrange[-0.1:1.1]
RandomSize(n) = rand(0)*4+2 # random size from 2 to 6
RandomTransp(n) = int(rand(0)*0xff)<<24 # random transparency from 0x00 to 0xff
myColor(x) = (int(r(x)*0xff)<<16) + (int(g(x)*0xff)<<8) + int(b(x)*0xff) + RandomTransp(0)
set samples 200
plot '+' u (x=rand(0)):(rand(0)):(RandomSize(0)):(myColor(x)) w p pt 7 ps var lc rgb var not
### end of code
Run Code Online (Sandbox Code Playgroud)
结果:
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |