Gnuplot:如何用颜色背景和图案填充一个条

Gnuplot:如何用颜色背景和图案填充一个条,gnuplot,bar-chart,Gnuplot,Bar Chart,我想用彩色背景和图案填充一个条。在Gnuplot中可能吗 我使用的是Gnuplot 4.6.5 我现在拥有的代码是: # set terminal pngcairo transparent enhanced font "arial,10" fontscale 1.0 size 500, 350 # set output 'histograms.2.png' set boxwidth 0.9 absolute set style fill solid 1.00 border lt -1 s

我想用彩色背景和图案填充一个条。在Gnuplot中可能吗

我使用的是Gnuplot 4.6.5

我现在拥有的代码是:

# set terminal pngcairo  transparent enhanced font "arial,10" fontscale 1.0 size 500, 350 
# set output 'histograms.2.png'
set boxwidth 0.9 absolute
set style fill   solid 1.00 border lt -1
set key inside right top vertical Right noreverse noenhanced autotitles nobox
set style histogram clustered gap 1 title  offset character 0, 0, 0
set datafile missing '-'
set style data histograms
set xtics border in scale 0,0 nomirror rotate by -45  offset character 0, 0, 0 autojustify
set xtics  norangelimit font ",8"
set xtics   ()
set title "US immigration from Northern Europe\nPlot selected data columns as histogram of clustered boxes" 
i = 22
set yrange [0:2000]
set style line 1 lc rgb 'orange';
set style line 2 lc rgb 'pink';
plot for [i=2:7] 'data.dat' using i:xtic(1) ti col ls i%2+1;
数据文件:

Region  Denmark France Demark-Women France-women Demark-man France-men
1891-1900   1000 1100   500 600 500 500
1901-1910   1500 1600   1000 600 500 1000
以下是下载脚本和数据文件的链接:

剧本给了我:

我想要的是:


如果有人能帮助我改进代码以生成第二个图形,我将不胜感激。谢谢。

这是一个非常棘手的问题,因为您无法更改填充图案的背景色。默认情况下,图案的背景色为白色,不透明或为空

唯一可以充分操作的终端是
lua tikz
终端。在这里,我首先绘制所有的颜色框,然后在第二次迭代中绘制填充图案。为了有一个新的迭代,我使用
newhistogram
选项,但是这会在图例中造成一个间隙

要删除填充图案的白色背景,我使用
sed
从输出流中删除相关部分。很有黑客味,但它很管用:

set terminal lua tikz standalone size 5in, 3in color
set output '| sed ''s/\\gpfill{color=gpbgfillcolor}//g'' > histograms.tex'
set boxwidth 0.9 absolute
set style fill   solid 1.00 border lt -1
set key inside right top vertical Right noreverse noenhanced autotitles nobox
set style histogram clustered gap 1 title  offset character 0, 0, 0
set datafile missing '-'
set style data histograms
set xtics border in scale 0,0 nomirror rotate by -45  offset character 0, 0, 0 autojustify
set xtics  norangelimit font ",8"
set xtics   ()
set title "US immigration from Northern Europe\nPlot selected data columns as histogram of clustered boxes" 
i = 22
set yrange [0:2000]
set xrange [-1:2]
set style line 1 lc rgb 'orange';
set style line 2 lc rgb 'pink';
plot for [i=2:7] 'data.dat' using i:xtic(1) ti columnhead(i > 3 ? 10 : i) ls i%2+1 fillstyle solid noborder,\
     newhistogram at -1, \
     '' using 2 ti 'total' lt -1 fillstyle empty,\
     '' using 3 notitle lt -1 fillstyle empty,\
     '' using 4 title 'women' lt -1 fillstyle pattern 5,\
     '' using 5 notitle lt -1 fillstyle pattern 5,\
     '' using 6 title 'men' lt -1 fillstyle pattern 6,\
     '' using 7 notitle lt -1 fillstyle pattern 6

set output
system('pdflatex histograms.tex')
结果见4.6.5:

刚刚发现,您可以指定没有背景颜色的图案,如

... fillstyle pattern 6 transparent
哪些终端工作取决于gnuplot版本:

plot x with filledcurves x1 fillstyle solid fc rgb '#990000',\
     x with filledcurves x1 fillstyle pattern 4 transparent lc rgb 'white'
结果(使用svg终端和版本4.6.5):


真希望Gnuplot能在将来的版本中增加这个特性。