如何在Gnuplot中使用半透明点绘制散点图?

如何在Gnuplot中使用半透明点绘制散点图?,gnuplot,transparent,point,scatter,Gnuplot,Transparent,Point,Scatter,如何使用Gnuplot绘制具有部分透明散射点的图像,如下图所示?问题是我不知道如何将这些点设置为透明的 试试这个: set style fill transparent solid 0.35 noborder set style circle radius 0.02 plot 'test' u 1:2 with circles lc rgb "blue", \ '' u 1:2 every 100 w circles lc rgb "red"

如何使用Gnuplot绘制具有部分透明散射点的图像,如下图所示?问题是我不知道如何将这些点设置为透明的

试试这个:

set style fill  transparent solid 0.35 noborder
set style circle radius 0.02
plot 'test' u 1:2 with circles lc rgb "blue", \
     '' u 1:2 every 100 w circles lc rgb "red" fs solid 1.0 border lt -1
哪个输出

如您所见,您可以为每个数据集指定是否使用透明度以及使用哪种颜色。
如果数据包含两个值(圆的x和y位置),则必须通过
设置样式圆…
指定圆的半径。如果数据有三行,可以使用第三个值为每个数据点指定圆的半径。

您可以使用透明度级别,范围从0(完全透明度)到1(无透明度)。

您可以使用argb的alpha通道以及
lc rgb变量

set samp 2000
randn(x) = invnorm(rand(x))
pl [-3:3][-3:3] '+' us (randn(0)):(randn(0)):(0xBB00AAFF) lc rgb variable pt 7 ps 2

这会在每个圆周围留下一些egde,可能是一个圆加上一个填充圆的不透明效果。不幸的是,在matplotlib中没有edgecolor选项来控制此操作。将填充圆
pt 7
替换为开放圆,但粗线宽
pt 6 lw 6
可以稍微缓解此问题

pl [-3:3][-3:3] '+' us (randn(0)):(randn(0)):(0xBB00AAFF) lc rgb variable pt 6 lw 6

还可以使用
lc-rgb变量模拟变量透明度

set samp 50
pl '+' us 1:1:(0x00AAFF+(int(0xFF*$1/10.)<<24)) pt 7 lc rgb variable ps 3
设置samp 50

pl'+'us 1:1:(0x00AAFF+(int(0xFF*$1/10.)谢谢你的回答!它非常有用。但很抱歉,我不知道如何将你的答案标记为正确。顺便说一句,我发现另一种方法是先统计每个点的密度,然后用调色板在gnuplot中绘制。再次感谢你!忘了
gnuplot
,上面的图是如何绘制的?看起来是一种更好的形式平滑散射的