【发布时间】:2012-05-15 18:09:25
【问题描述】:
我想在我的 gnuplot 图形中获得透明背景。 我到现在为止的编码是:
#! /usr/bin/python
from numpy import *
import Gnuplot as gp
import Gnuplot.funcutils
x = (1,2,3)
y=(2,4,5)
x1 = (3,6,8)
g = gp.Gnuplot()
g("set terminal svg size 200,400")
g("set output 'filename.svg'")
g("unset xtics")
g("unset ytics")
g("set multiplot layout 3,1 title 'Title here'")
g("set object 1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb '#ff0000' behind")
#First
g("set tmargin 2")
g("set title 'Plot'")
g("unset key")
d = gp.Data(x,y,with_="lines")
g.plot(d)
#Secon
g("set title 'Plot2'")
g("unset key")
d1 = gp.Data(x1,y,with_="lines")
g.plot(d1)
#Third
g("set title 'Plot3'")
g("unset key")
d2 = gp.Data(y,x,with_="lines")
g.plot(d2)
g("unset multiplot")
我有一个红屏,但只是第三个情节。 (是的,我必须更改 rgb 组合以获得透明背景颜色。但是,它是什么?)
提前致谢, 脸书
【问题讨论】:
-
你使用什么操作系统——什么svg查看器?上面的脚本适用于我在 Ubuntu linux 上,使用 Gnome 之眼作为我的查看器(如果我删除
set object代码)。当然,您可以通过set object 1 rectangle ... fillstyle transparent solid 0使背景透明(0-1 为透明级别,0 为完全透明) -
另外,你用的是什么版本的gnuplot?
-
最后一个问题——最终目标是让给定的颜色显示在所有情节的后面吗?如果是这样,您可以在任何支持对象的终端中实现不透明(我可以轻松修改您的脚本来实现)。
-
是的,感谢您的第 n 个建议。如果我使用“eog”它是透明的,而如果我在 shell 中使用“display”它看起来不透明。我会尝试我自己的脚本,我会一直支持你的。
-
简单说一下
display--display是一个围绕(主要)为光栅图像创建的 imagemagick 例程的包装器。display使用gs(ghostscript) 来处理矢量图形(我认为),我听说ghostscript 不能正确处理除postscript 以外的文件格式的透明度(例如pdf,也许svg也.. . ).所以,我不相信您在display中看到的就是文件中的实际内容。