Python gnuplot multiplot中的透明背景

Python gnuplot multiplot中的透明背景,python,gnuplot,Python,Gnuplot,我想在我的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("un

我想在我的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组合以获得透明的背景色。但是,它是什么?)

提前感谢,,
FB

Gnuplot可以直接输出透明背景,但不是所有格式。例如,可以为.png执行此操作:

set term png transparent truecolor
set output 'plot.png'
plot sin(x)
transparent
处理背景的透明度,而
truecolor
处理透明对象/打印填充的透明度

从gnuplot中获取透明背景的另一种方法是输出.eps并将其转换为.png或支持光栅格式的透明度

Gnuplot示例:

set terminal postscript enhanced color
set output 'plot.eps'
plot sin(x)
在bash中:

convert plot.eps -rotate 90 plot.png
生成的.png有一个透明的背景,而.eps没有。这可能与imagemagick处理透明度的方式有关。将.svg转换为.png时,情况并非如此;它仍然有一个白色的背景


使用矢量图形编辑器(如Inkscape)来增加透明度可能会有点运气。

您使用的是什么操作系统--什么svg查看器?上面的脚本适用于我在Ubuntu linux上使用Gnome的眼睛作为我的视图(如果我删除
set对象
code)。当然,您可以通过
set object 1 rectangle。。。fillstyle transparent solid 0
(0-1表示透明度级别,0表示完全透明)另外,您使用的是什么版本的gnuplot?最后一个问题——最终目标是在所有绘图后显示给定的颜色吗?如果是这样的话,您可以在任何支持对象的终端上实现这一点,而无需透明(我可以很容易地修改您的脚本来实现)。是的,谢谢您的第n条建议。如果我在shell中使用“eog”,它是透明的,而如果我在shell中使用“display”,它看起来是不透明的。我将尝试我自己的脚本,我将与您保持联系。
display
--
display
是一个围绕imagemagick例程的包装器,这些例程(主要)是为光栅图像创建的<代码>显示使用
gs
(ghostscript)来处理矢量图形(我想),我听说ghostscript不能正确处理postscript以外的文件格式的透明度(例如
pdf
,也可能
svg
)。因此,我不相信您在
display
中看到的是文件中的实际内容。Gnuplot可以在
png
文件中实现透明
set terminal png transparent truecolor
应该可以做到这一点(transparent处理背景,而truecolor处理任何其他可能是透明的对象)——或者使用pngcairo--
set term pngcairo transparent
。在gnuplot中完成这一切可能会产生比转换(尤其是文本)更清晰的图像。你说得对!我更新了我的答案,加入了你的一些评论。