2

i have a truss bridge that i want to draw using fortran 90 and Gnuplot , but the truss elements should change color if the corresponding array element is bigger or smaller than zero

open(10,file='plot_2D.plt')
write(10,*) 'set title " truss"'
write(10,*) 'set xrange [0:300]'
write(10,*) 'set yrange [0:40]'
write(10,*) 'set xlabel "x [U]"'
write(10,*) 'set ylabel "y [U]"' 
write(10,*) 'set key noautotitle'        
write(10,*) 'plot "1.txt" if (x(1) > 0 ) {with line 7} else { with line lt 3 } '
write(10,*) 'pause -1 "Hit return to continue"'
close(10)   

ofcourse i have 1.txt up to 222.txt but i just put one here because it is repetitive process
but i dont get any plot , what is my mistake ?

1 Answer 1

3

It is not clear what exactly you mean by x(1) > 0 since there is no function x() defined. Assuming that x(1) means data value in column 1, then instead of

write(10,*) 'plot "1.txt" if (x(1) > 0 ) {with line 7} else { with line lt 3 } '

the correct syntax is

write(10,*) 'plot "1.txt" using 1:2:($1>0 ? 7 : 3) with lines linecolor variable'
Sign up to request clarification or add additional context in comments.

2 Comments

is 1>0 ? 7 : 3 a conditional ternary operator?
Yes, it is a ternary operator.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.