带有单词功能的Gnuplot fillstyle模式会出错

时间:2017-04-18 16:08:03

标签: for-loop gnuplot

我正在绘制一个包含不同列的文件,我正在使用gnuplot的for循环。我想完全控制图形的外观,所以我使用set line style来控制线条的颜色。我想对模式填充做同样的事情,但似乎用gnuplot不可能。

到目前为止,我已经找到了解决方案,但由于未知原因,该解决方案效果不佳:

set terminal cairolatex standalone pdf
set style line 2 linecolor rgbcolor "#F9E0B0" linewidth 2 pt 13
# etc ... up to 10

pat="0 2 4 7 2 4 7 2 4 7" ## An attempt to define the pattern style I want
set style fill pattern 1 border ## this control the first pattern, then the next ones are incremented but it cannot control each index

set output "myplot.tex"
plot for [i=2:10] "myfile.dat" index 0 u i:xtic(1) fillstyle pattern int(word(pat, i)) ls i ti columnheader ## The color is controlled according to me via the linestyle, but the fillstyle does not work

## An alternate solution giving a little bit of control but not fully satisfactory since I want to avoid the pattern 3
# plot for [i=2:10] "myfile.dat" index 0 u i:xtic(1) fillstyle pattern i%3+1 ls i ti columnheader 
unset output

使用此解决方案,我收到以下错误:unexpected or unrecognized token

任何想法为什么单词在fillstyle模式后失败,或者有没有人知道如何为每个数据指定模式?

编辑:我正在使用gnuplot 5.0

1 个答案:

答案 0 :(得分:2)

解析器期望紧跟在“fillstyle”之后的实体是一个数字,但它不会将int(“foo”)识别为数字。那是一个错误。您可以使用语法

来解决此问题
fillstyle pattern 0+word(pat,i)