如何使用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
.
这会在每个圆圈周围留下一些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 variable
set samp 50 pl '+' us 1:1:(0x00AAFF+(int(0xFF*$1/10.)<<24)) pt 7 lc rgb variable ps 3
其中int(0xFF*$1/10.)
将输入从0..10映射到0..255并将<<24
其转换为alpha通道.
请注意,在您的绘图中,只有密集区域似乎具有透明效果,而不是背景中的散点.