自动更改Gnuplot中的“​​填充样式”或“线条样式”

时间:2013-05-13 05:37:24

标签: graphics gnuplot

我需要绘制一个网格。网格的每个部分可以具有不同的颜色/样式。此样式对应于文件中指定的值。我认为boxxyerrorbars风格可能是相关的。我创建了一个包含7列的文件:

#x  y   xlow  xhi  ylow yhi  style 
1   1   0.9   1.1  0.5  1.5   0.2
2   1   1.9   2.1  0.5  1.5   0.4
3   1   2.9   3.1  0.5  1.5   0.6

我使用boxxyerrorbars样式和数据中的前6列创建绘图:

plot[0:4][0:2] 'aa1.dat' w boxxy fs solid 0.6 nobo 

情节(网格的三个部分)看起来像......(没有足够的声誉来提交图像)。

所有细分都使用样式solid 0.6绘制。通过更改此数字,可以更改fill style密度。但我需要每个段都有自己的样式,例如,在数据的第7列中指定。也许,还有其他方法。我只需要使用从文件指定的样式/颜色绘制的段(不是手动插入到脚本中)。

1 个答案:

答案 0 :(得分:1)

将调色板选项添加到地块

palette选项将根据数据文件最后一列的值自动分配当前调色板的颜色值(在这种情况下,它是第7列,在普通函数图中,它将是3)。

plot ... palette

根据需要调整调色板

在绘图之前,您应该将gnuplot调色板设置为您喜欢的颜色。 为此,请使用set paletteset cbrange

示例

set palette model RGB defined ( 0 "white", 1 "red")  
set cbrange[0:1]
unset colorbox
plot[0:4][0:2] 'data.txt' w boxxy fs solid  palette

Plot result

<强>解释

  • 在第一行,我们将colorpalette设置为从白色变为红色。
  • set cbrange[0:1]定义调色板的范围,即0将是纯白色,1将是红色(如果您没有设置自己的cbrange,gnuplot将从数据中获取最小/最大值)
  • unset colorbox告诉gnuplot不要在情节旁边绘制颜色框标签

进一步调整

您还可以调整色板以使其具有离散色值(即不仅仅是渐变色)。

E.g。     设置调色板模型RGB定义(0“蓝色”,1“蓝色”,1“深绿色”,2“深绿色”,2“红色”,3“红色”)     设置cbrange [1:3]

将文件样式列中的值设置为1,2或3会分别给出蓝色,绿色或红色。

#x  y   xlow  xhi  ylow yhi  style 
1   1   0.9   1.1  0.5  1.5   1
2   1   1.9   2.1  0.5  1.5   2
3   1   2.9   3.1  0.5  1.5   3

Plot with alternative palette