用于封闭线条的Gnuplot填充曲线不能正常工作

时间:2015-10-09 08:03:17

标签: gnuplot fill

我遇到了gnuplot填充曲线的问题。我使用以下代码计算了一些数据来绘制图片:

plot 'cont.dat' u 1:2 w filledcurves closed lc rgb "#ADFF2F"  title "DF"
'cont2.dat' u 1:2 w filledcurve lc rgb "#CD5C5C" title "DA",\
'cont3.dat' u 1:2 w filledcurve lc rgb "#4682B4" title "(DF+DA)/2",\
'cont3.dat' u 1:2 w l lw 3 lc rgb "#4682B4" notitle ,\
'cont.dat' u 1:2 w l lw 3 lc rgb "#ADFF2F" notitle,\
'cont2.dat' u 1:2 w l lw 3 lc rgb "#CD5C5C" notitle

这些数据一切都很好:

enter image description here

但是当我计算另一个案例时。尝试使用相同的代码绘制我收到以下错误的结果:

enter image description here

如何更改代码以完全填充区域?我不需要这个透明的“洞”。

UPD:在这里您可以找到错误绘制的绿色区域数据:  https://www.dropbox.com/s/xzheur2mx9h902f/cont.dat?dl=0 无论你是绘制三条曲线还是一条曲线,每条曲线的结果都是相同的。

我使用GNUplot 4.6 for Windows

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,数据中的一个问题是它被分成块。但解决这个问题是不够的。让我们关注下图:

filled curves

顶部的数字对应于原始数据。我用不同的颜色绘制了每个数据块。如果我们删除空格,则会获得中/蓝图,因此问题尚未解决。

如果查看数据,每个数据块的第一列按箭头方向排序(上图),但数据块按相反方向排序:它们已断开连接!

因此,数据块应按 0-4-3-2-1 (或任何循环顺序,如3-2-1-0-4)排序。还应删除白色空格。执行此操作后,将获得底部/红色图。

这是我用来绘制图片的代码的一部分:

plot for [i=0:4] 'cont_original.dat' u 1:2 every :::i::i w filledc t 'original block '.i,\
     'cont_nospaces.dat' u 1:($2-0.2) w filledc t 'original without spaces',\
     'cont_ordered.dat'  u 1:($2-0.4) w filledc t 'ordered'