7

gnuplot Figure の背景を透明にしたいと思います。私が今までコーディングしたのは次のとおりです。

#! /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")

赤い画面が表示されましたが、3 番目のプロットだけです。(ええ、透明な背景色を得るには、RGB コンボを変更する必要があります。しかし、それは何ですか?)

前もってありがとう、FB

4

1 に答える 1

8

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などのベクターグラフィックエディタを使用して透明度を追加すると、運が良かったかもしれません。

于 2012-05-15T18:28:09.793 に答える