【问题标题】:Gnuplot: how to set pm3d map transparent?Gnuplot:如何设置 pm3d 地图透明?
【发布时间】:2019-04-30 07:41:23
【问题描述】:

我有一个非常简单的问题:我想知道如何在 Gnuplot(gnuplot 版本 5.2)中使等高线图(pm3d 地图)透明。

我可以找到制作透明图或填充曲线的方法, (比如这个网站-http://gnuplot.sourceforge.net/demo/transparent.html) 但不适用于等高线图。

我想要做的是,叠加图像和等高线图,并希望使等高线透明。

感谢您的帮助!

添加: 当我尝试做时

set style fill transparent solid 0.5

轮廓区域变为灰色..这是为什么?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    据我了解您的问题...您真的需要splotpm3d 吗? 也许以下也是plot ... with boxxyerror的可行解决方案。或许,它可以进一步优化。

    输入:“MapTest.png”

    代码:

    ### map with transparent overlay
    reset session
    set term pngcairo size 700,700 font ",10"
    set output "MapTransparent.png"
    set size square
    set margins 0,0,0,0
    unset tics
    set cbtics
    unset key
    
    # function "borrowed" from http://gnuplot-tricks.blogspot.com/2009/07/maps-contour-plots-with-labels.html
    f(x,y)=(sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(y*.2*x))*3+15
    set samples 51
    set isosamples 51
    set table $Data
        splot [0:600][0:600] f(x/60.,y/60.)
    unset table
    # create contour lines
    set contour base
    set cntrparam levels 10
    unset surface
    set table $Contour
        splot [0:600][0:600] f(x/60.,y/60.)
    unset table
    
    set xrange[0:600]
    set yrange[0:600]
    set palette rgbformulae 33,13,10
    
    set style fill transparent solid 0.4 noborder
    plot \
        "MapTest.png" binary filetype=png w rgbimage, \
        $Data u 1:2:(6):(6):3 with boxxyerror palette,\
        $Contour u 1:2:3 w l lt rgb "grey"
    
    set output
    ### end of code
    

    结果:

    【讨论】:

      【解决方案2】:

      有一个全局样式设置会影响 gnuplot 中的所有填充对象,包括构成 pm3d 表面的四边形。设置 50% 的透明度:

      set style fill transparent solid 0.5
      

      这仅适用于区域填充,但不适用于边缘。如果您希望整个表面是透明的,最好不要绘制边缘:

      set pm3d noborder
      

      注意:我不确定“等高线图”如何适应这一点。轮廓线是另一回事。您也可以将它们设置为透明,但这不会影响 pm3d 表面本身。

      这是在将填充样式设置为透明之前和之后绘制为“splot ... with pm3d”的表面。

      【讨论】:

      • 感谢您的评论!但是如果我们设置“透明实心0.5”,等高线图就会变成灰色......为什么?
      • 很奇怪。您使用的是什么终端类型?
      • 再次感谢您的回答!是的,这很奇怪。我能够在交互式命令行 gnuplot 中重现您的结果。但我无法用我的 gnuplot 脚本重现....在这个脚本中,我正在导出到 png 文件。
      • 好的,现在我解决了问题...当我从 png 更改为 jpeg(基础图像是 jpeg)时,它起作用了! (我仍然不明白发生了什么)。这很奇怪,因为在 png 中创建等高线图不会造成麻烦。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多