问题
I would like to plot a curve with a variable line width. I normally would do the following if I wanted to use points instead of a line:
gnuplot> plot 'curve.dat' u ($1):($2):($1) ps var
where curve.dat is filled with:
0 0
1 1
2 4
3 9
4 16
5 25
and so on. Now if I try something similar for the line width:
gnuplot> plot 'curve.dat' u ($1):($2):($1) lw var
I get the error message:
undefined variable: var
Or is this something that cannot be done with gnuplot?
回答1:
You're right that linewidth
doesn't accept var
like pointsize
does. But you can have a similar effect by using filledcurves
:
WIDTH_FACTOR=20
plot 'curve.dat' u ($1):($2+$1/WIDTH_FACTOR):($2-$1/WIDTH_FACTOR) w filledcurves
回答2:
This addresses a problem with Gavin’s answer: his method creates a certain line height (as opposed to line width). I found a different way, which works with widths.
The defects in my solution: one needs to know the “coordinate space aspect ratio” in advance, and there are artifacts at joins.
来源:https://stackoverflow.com/questions/52250137/how-to-set-a-variable-line-width-when-plotting