我正在使用gnuplot绘图循环来绘制几个图中的数据:
filenames = "my data files"
plot for file in filenames file.".txt" \
title file
现在我正在使用title file
来设置剧情标题,但是我希望能够更好地控制情节标题,而无需更改我的文件名。例如,在pseduocode中,我想:
files = [first, second, third, fourth]
titles = [One title, second title, third title, fourth title]
plot for [n=1:4] files[n] titles[n]
请注意,标题由多个单词组成,因此words(titles,n)
不是一个选项。
有没有其他方法可以让我在我的标题中有更大的灵活性?
答案 0 :(得分:3)
首先:好消息,5.0版本对引用文本部分的支持有限,可用于word
和words
。
对于5.0RC3版,以下工作正常:
titles='"first title text" "second title text"'
plot x title word(titles, 1), 2*x title word(titles, 2)
第二个'hack'可以与postscript终端一起使用,以防你使用它,并使用八进制表示法\040
对标题内的空间进行编码:
set terminal postscript eps enhanced
set output 'spaces.eps'
titles='first\040title\040text second\040title\040text'
plot x title word(titles, 1), 2*x title word(titles, 2)
第三个版本使用空格的替换字符和sed
的shell调用以在拆分后插入空格:
titles='first@title@text second@title@text'
sub(s) = system(sprintf("echo \"%s\" | sed 's/@/ /g'", s))
plot x title sub(word(titles, 1)), 2*x title sub(word(titles, 2))
您还可以设置一个函数myword
,它使用awk
或类似函数直接进行拆分。但这可能需要一些摆弄引号字符。
答案 1 :(得分:0)
确实可以使用word(string_with_words, index)
:
filenames = "my data files"
description= "one two three"
plot for [n=1:4] word(filenames, i) title word(description, i)