首页 > 解决方案 > 如何在gnuplot的多个图中设置背景颜色?

问题描述

如何在gnuplot的多个图中设置背景颜色?我尝试了以下脚本:

reset
set encoding iso_8859_1                                         
set terminal pngcairo size 1400,800 font "Serif CMU,15" enhanced  
set output "figure.png"                                 


Row1 = "set tmargin screen 0.92; set bmargin screen 0.40"   # Top and bottom margins
Row2 = "set tmargin screen 0.40; set bmargin screen 0.20"
Col1 = "set lmargin screen 0.10; set rmargin screen 0.50"   # Left and right margins
Col2 = "set lmargin screen 0.50; set rmargin screen 0.88"

# Multiplot option with main title
set multiplot layout 2,2 rowsfirst 

@Row1; @Col1                            # Calling the macros
set object 1 rectangle from screen 0,0 to screen 1,1 behind fillcolor rgb '#F6DEBE' fillstyle solid noborder
plot 'blue.txt' 


@Row1; @Col2

set object 1 rectangle from screen 0,0 to screen 1,1 behind fillcolor rgb '#F6DEBE' fillstyle solid noborder
plot 'blue.txt' 


@Row2; @Col1

set object 1 rectangle from screen 0,0 to screen 1,1 behind fillcolor rgb '#F6DEBE' fillstyle solid noborder
plot 'blue.txt' 

@Row2; @Col2

set object 1 rectangle from screen 0,0 to screen 1,1 behind fillcolor rgb '#F6DEBE' fillstyle solid noborder
plot 'blue.txt' 

我还尝试在每次绘图后设置未设置的对象 1。

我获得了:

在此处输入图像描述

标签: gnuplot

解决方案


欢迎来到 StackOverflow!你检查过help pngcairo吗?

句法:

    set term pngcairo
                 {{no}enhanced} {mono|color}
                 {{no}transparent} {{no}crop} {background <rgbcolor>

因此,除非您有一些特殊的愿望,否则类似下面的内容应该可以完成这项工作。

set term pngcairo background 0xf6debe

添加:

如果您想为图表设置不同的背景,您可以在整个图表或屏幕的一部分后面设置一个矩形。但是,虽然应该有选项noborder,但我还没有设法绘制没有边框的矩形。我不知道我错过了什么。

代码:(彩色图形背景)

### different colored backgrounds for each graph
reset session

set multiplot layout 2,2
    set grid x,y

    set obj 1 rect from graph 0,0 to graph 1,1 fc rgb 0xffdddd behind
    plot x

    set obj 1 rect from graph 0,0 to graph 1,1 fc rgb 0xddffdd behind
    plot x**2

    set obj 1 rect from graph 0,0 to graph 1,1 fc rgb 0xddddff behind
    plot cos(x)

    set obj 1 rect from graph 0,0 to graph 1,1 fc rgb 0xffffdd behind
    plot sin(x)/x

unset multiplot
### end of code

结果:

在此处输入图像描述

代码:(部分画布/屏幕的彩色背景)

### colored backgrounds in multiplot
reset session

set multiplot layout 2,2

    set obj 1 rect from screen 0.0,0.5 to screen 0.5,1.0 fc rgb 0xffeeee behind
    plot x

    set obj 1 rect from screen 0.5,0.5 to screen 1.0,1.0 fc rgb 0xeeffee behind
    plot x**2

    set obj 1 rect from screen 0.0,0.0 to screen 0.5,0.5 fc rgb 0xeeeeff behind
    plot cos(x)

    set obj 1 rect from screen 0.5,0.0 to screen 1.0,0.5 fc rgb 0xffffee behind
    plot sin(x)/x

unset multiplot
### end of code

结果:

在此处输入图像描述


推荐阅读