gpt4 book ai didi

gnuplot - Gnuplot:如何用彩色背景和图案填充条形图

转载 作者:行者123 更新时间:2023-12-04 17:34:44 29 4
gpt4 key购买 nike

我想用彩色背景和图案填充条形图。在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

以下是下载脚本的链接: https://dl.dropboxusercontent.com/u/45318932/histograms2.plt和数据文件: https://dl.dropboxusercontent.com/u/45318932/data.dat

脚本给了我:

我想要的是:

如果有人可以帮助我改进代码以产生第二个数字,将不胜感激。谢谢。

最佳答案

那是非常棘手的,因为您不能更改填充图案的背景颜色。默认情况下,图案的背景颜色为白色,并且不是透明或为空。

唯一可以适当操作的终端是lua tikz终端。在这里,我首先绘制所有颜色框,然后在第二次迭代中填充图案。要进行新的迭代,我使用newhistogram选项,但是这会在图例中造成空白。

要删除填充图案的白色背景,我使用sed从输出流中删除了相关部分。很hacky,但它可以工作:

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 - Gnuplot:如何用彩色背景和图案填充条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25065288/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com