如何在 Gnuplot 中制作带有半透明点的散点图?

How to make scatter plots with semitransparent points in Gnuplot?

如何使用 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 位置),则必须通过 set style circle ... 指定圆的半径。如果您的数据有三行,您可以使用第三个值指定每个数据点的圆半径。
您可以调整透明度级别,范围从 0(完全透明)到 1(不透明)。

您可以将 argb 的 alpha 通道与 lc rgb variable:

一起使用
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

.

这会在每个圆圈周围留下一些边缘,可能是圆圈加上圆圈顶部的不透明效果。不幸的是,在 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 variable

模拟 变量透明度
set samp 50
pl '+' us 1:1:(0x00AAFF+(int(0xFF*/10.)<<24)) pt 7 lc rgb variable ps 3

其中 int(0xFF*/10.) 将输入从 0..10 映射到 0..255,然后 <<24 将其转移到 alpha 通道。

请注意,在您的绘图中,只有密集区域似乎具有透明效果,而背景中的散点则没有。