2013-05-13 137 views
1

我需要绘制网格。网格的每个部分可以有不同的颜色/样式。此样式对应于文件中指定的值。我认为boxxyerrorbars风格可以相关。我创建了一个有7列的文件:自动更改Gnuplot中的“​​填充样式”或“线条样式”

#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

调色选项添加到您的情节

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

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到没有绘制颜色框标签旁的情节

进一步调整

您还可以调整colorpalette有descrete颜色值(即不仅渐变)。

E.g. set palette model RGB defined(0“blue”,1“blue”,1“dark-green”,2“dark-green”,2“red”,3“red”) set 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

+0

非常感谢您的帮助。下载了ver.4.6之后(之前使用过4.2),我找到了类似的解决方案。我用'w boxxy fs solid pal',就像你所说的那样。另外,如果'style'可以是1,2,3,那么可以使用'plot [0:4] [0:2]'aa1.dat'w boxxy fs solid lc var',它的作用类似于第二种方法。 – user2320292 2013-05-13 13:04:15

+0

如果您发现正确/有用,请不要忘记接受我的答案;)或者添加您的解决方案作为问题的答案 – psibar 2013-05-13 13:34:32