3

我正在尝试叠加两个直方图,我需要第二个(图像中的蓝色)是透明的,以便可以看到它下面的一个:

在此处输入图像描述

这是我正在使用的代码:

#!/bin/bash
gnuplot << EOF

set term postscript portrait color enhanced 
set output 'test.ps'
set size ratio 1
set multiplot
set size 0.5,0.5

n=20    #number of intervals
max=1.0 #max value
min=0.0    #min value
width=(max-min)/n        #interval width
hist(x,width)=width*floor(x/width)+width/2.0

set boxwidth width*0.9
set xrange [0:1]
plot "/path_to_file" u (hist(\$1,width)):(1.0) smooth freq w boxes lc rgb "black" lt 1 lw 0.5 notitle fs solid 0.5, \
"/path_to_file" u (hist(\$2,width)):(1.0) smooth freq w boxes  notitle fs transparent pattern 4 noborder lc rgb "blue" lt 1 lw 0.5

EOF

这是可以与上述代码一起使用的文件:http: //pastebin.com/5qpFHgtZ

4

1 回答 1

2

当我将终端更改为png(或pdfpdfcairo)(例如set term png enhanced)时,我得到一个看起来正确的图。

然而,gnuplot 似乎认为postscript应该创建一个透明的图(见下表,取自help transparent)。所以,我的诊断是它要么是 gnuplot 中的错误,要么是文档中的错误。

   terminal   solid pattern    pm3d
   --------------------------------
   gif           no     yes      no
   jpeg         yes      no     yes
   pdf          yes     yes     yes
   png    TrueColor   index     yes
   post          no     yes      no
   svg          yes      no     yes
   win          yes     yes     yes
   wxt          yes     yes     yes
   x11           no     yes      no
于 2012-09-12T14:40:26.837 回答