如何在 gnuplot 中创建带有乳胶标签的图形并处理透明度?

如何在 gnuplot 中创建带有乳胶标签的图形并处理透明度?

我非常喜欢我的 gnuplot 图中乳胶标签,并且我生成大多数标签的方式是通过 pslatex 终端。

在此,我想利用透明度在图中(叠加的直方图),同时保留乳胶标签。我的问题是,这无法使用 pslatex 实现,因为 postscript 不处理透明度。

当然,我可以使用 svg 终端,生成具有透明度的图形核心,然后使用 pslatex 仅生成轴,然后在 inkscape 中手动将所有内容放在一起,并保存为 .pdf(但至少可以说这很重)。

您是否知道在 gnuplot 中是否有任何直接的方法可以做到这一点?

再次,谢谢为你的时间!

PS:据记录,我遵循的 pslatex 程序已在此处公开:如何设置文档查看器菜单栏中显示的标题?

答案1

如果我没记错的话,postscript 不支持透明度。这意味着你必须选择一个支持透明度(和 TeX)的终端。在 ConTeXt 中,透明度可以正常工作,在文本标签以及透明图形中也是如此(更多信息:ConTeXt 维基 - Gnuplot)。ConTeXt 使用自己的终端(基于 metapost 终端)。您可以尝试使用 metapost 终端。

此示例取自Gnuplot 主页 - 演示并稍作修改;也许你可以在 LaTeX 中做类似的事情。

\usemodule [gnuplot]

\definecolor [mytrans] [r=0.7,t=0.5,a=1]
\starttext

\startGNUPLOTscript [plt]
set clip two
set style fill  transparent solid 0.50 noborder
set key title "Gaussian Distribution"
set key inside left top vertical Left reverse enhanced autotitles nobox
set key noinvert samplen 1 spacing 1 width 0 height 0 
set style function filledcurves y1=0
set title "\\color[mytrans]{Transparent} filled curves" 
set xrange [ -5.00000 : 5.00000 ] noreverse nowriteback
set yrange [ 0.00000 : 1.00000 ] noreverse nowriteback
unset colorbox
Gauss(x,mu,sigma) = 1./(sigma*sqrt(2*pi)) * exp( -(x-mu)**2 / (2*sigma**2) )
d1(x) = Gauss(x, 0.5, 0.5)
d2(x) = Gauss(x,  2.,  1.)
d3(x) = Gauss(x, -1.,  2.)
GPFUN_Gauss = "Gauss(x,mu,sigma) = 1./(sigma*sqrt(2*pi)) * exp( -(x-mu)**2 / (2*sigma**2) )"
GPFUN_d1 = "d1(x) = Gauss(x, 0.5, 0.5)"
GPFUN_d2 = "d2(x) = Gauss(x,  2.,  1.)"
GPFUN_d3 = "d3(x) = Gauss(x, -1.,  2.)"
plot d1(x) fs solid 1.0 lc rgb "forest-green" title "µ = 0.5 $\\sigma$ = 0.5",    d2(x) lc rgb "gold" title "µ =  2.0 $\\sigma$ = 1.0",    d3(x) lc rgb "red" title "µ = -1.0 $\\sigma$ = 2.0"
\stopGNUPLOTscript

\useGNUPLOTgraphic [plt]

\stoptext

结果:

结果

使用上下文 2011.05.18 18:04、gnuplot 4.7 patchlevel 0 进行测试

答案2

终端还支持透明度和乳胶标签凯罗拉泰克斯

相关内容