plot for [i = 'list of numbers']

11 views
Skip to first unread message

Jörg Buchholz

unread,
Jul 13, 2021, 8:11:02 AM7/13/21
to

Hello,

I have a dataset with 10 columns. First I will plot most of them and I use:

plot for [i = 3:10] 'file' skip 6 u 2:i w l t sprintf("T_%i",i-2)

in a second plot I will plot only column 6,8 and 9. Is there a way to
use a list of numeric or only a list of strings.

Plot for [i = 6, 8, 9] 'file' skip 6 u 2:i w l t sprintf("T_%i",i-2)

or

list = "6 8 9"
plot for [i in list] 'file' skip 6 u 2:i w l t sprintf("T_%i",i-2)

Does not work. A solution that works is the following, but it is little
more work.

plot for [i = 6:8:2] 'file' skip 6 u 2:i w l t sprintf("T_%i",i-2),\
for [i = 9:9] '' skip 6 u 2:i w l t sprintf("T_%i",i-2)




Jörg

Hans-Bernhard Bröker

unread,
Jul 13, 2021, 8:37:30 AM7/13/21
to
Am 13.07.2021 um 14:11 schrieb Jörg Buchholz:

> list = "6 8 9"
> plot for [i in list] 'file' skip 6 u 2:i w l t sprintf("T_%i",i-2)

Close, but no cigar. The string-based list does not work like that
because its elements evaluated by the for loop are still strings.

The following would have worked, though:


plot for [i in "6 8 9"] 'file' u 2:int(i)

The following may be more useful. See "help arrays" to understand what
it does:

n = 3
array list[n] = [6, 8, 9]
plot for [i in 1:n] 'file' u 2:list[i]


Jörg Buchholz

unread,
Jul 14, 2021, 1:07:08 AM7/14/21
to
Thanks a lot. At the moment I prefer your first solution, cause I
understood it "out of the box".

Jörg
Reply all
Reply to author
Forward
0 new messages