我想绘制“互补”虚线。我的意思是:我有3条曲线,它们在x值的特定范围内相同,但在此范围之外不同。当然,如果我仅在彼此之间绘制实线,我只会看到最上面的一条(在它们相同的范围内)。因此,我想将它们绘制为虚线:
1st line: dash-space-space-dash-space-space...
2nd line: space-dash-space-space-dash-space...
3rd line: space-space-dash-space-space-dash...
将它们绘制在上面应该会产生一条实线,并带有交替的颜色(三种线型)。 实现此目的最明显的方法是使用新的破折号,例如:
plot x dt "- ",x dt " - ",x dt " -"
但是,前导空白将被忽略。另外,诸如(20,20)之类的定义也不起作用,因为值的顺序始终为“实心长度,空白空间长度”。如果有一种方法可以反转此顺序,则可以轻松解决该问题。
(顺便说一下,在只有两条曲线的情况下,解决方案很简单:将第一个绘制为实线,第二个绘制为虚线。)
有什么想法吗?
答案 0 :(得分:2)
您可能正在寻找这样的东西:
### different shifted dashed lines
reset session
plot x, \
0 w l lw 3 lc rgb "red" dt (20,40) notitle, \
0 w l lw 3 lc rgb "web-green" dt (0,20,20,20) notitle, \
0 w l lw 3 lc rgb "blue" dt (0,40,20,0) notitle
### end of code
添加:
使用以下代码,结果在wxt,qt,postscript,pngcairo(不能测试x11)中应该是相同的(或者说类似)。好吧,短划线长度因终端而异(请参见https://stackoverflow.com/a/55628295/7295599)
### different shifted dashed lines
reset session
# set term wxt
# set term qt
set term pngcairo
set output "DashedLines.png"
# set term postscript color
# set output "DashedLines.eps"
plot x, \
0 w l lw 3 lc rgb "blue" dt 1 notitle, \
0 w l lw 3 lc rgb "web-green" dt (40,20) notitle, \
0 w l lw 3 lc rgb "red" dt (20,40) notitle
set output
### end of code