【发布时间】:2015-10-09 08:03:17
【问题描述】:
我对 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
这些数据一切正常:
但是当我计算另一个案例时。尝试使用相同的代码进行绘制,我收到以下错误结果:
如何更改我的代码以完全填充这些区域?我不需要这个透明的“洞”。
UPD:在这里您可以找到绘制错误的绿色区域数据: https://www.dropbox.com/s/xzheur2mx9h902f/cont.dat?dl=0 无论是绘制三条曲线还是绘制一条曲线,每条曲线的结果都相同。
我在 Windows 上使用了 GNUplot 4.6
【问题讨论】:
-
请显示 一个 错误曲线的数据,以便我们尝试重现此问题。您使用哪个 gnuplot 版本?
-
问题是,您要绘制的文件具有不同的数据块(部分由新行分隔)。这些被视为单独的曲线,每条曲线都没有一个填充区域。当您使用
plot for [i=0:4] 'cont.dat' using 1:2 every :::i::i with lines lw 3绘制数据时,您会看到这一点。不幸的是,删除这些新行并不能解决这个问题,因为这些行的顺序并不像您需要的那样。但是,我不知道当您使用 gnuplot 创建轮廓时是否出现问题,以便获得多个轮廓段而不是单个。 -
我尝试从输入数据中删除空行,然后按第一列对其进行排序。所以我想现在 GNUplot 不会像单独的曲线那样响应数据。不幸的是,现在我的情节看起来像这样link。我试图找到解决方案。但实际上我不确定这个问题是由填充程序引起的还是由以前的数据计算曲线的方法引起的。
-
正如我告诉你的,问题是根据你之前的数据计算曲线是错误的,因为它创建了几条曲线而不是一条曲线。对于绘图线,这很好,但不适用于填充。