2011-06-22 137 views
3

我有一个情节看起来像这样:gnuplot的2D情节3D围栏情节

http://www.abload.de/img/selection001yplp.png

但是线条重叠了不少,我无法看到像我想。我gnuplot的脚本是这样的:

set autoscale 
    set term pdfcairo font ",4" 
    set output "plot.pdf" 
    set xdata time 
    set format x "%H:%M" 
    set timefmt "%s" 
    set yrange [0:550] 
    plot "file.dat" every 150 using 3:4 title '' with lines, \ 
     "file.dat" every 150 using 3:5 title '' with lines, \ 
     "file.dat" every 150 using 3:6 title '' with lines, \ 
     "file.dat" every 150 using 3:7 title '' with lines, \ 
     "file.dat" every 150 using 3:8 title '' with lines, \ 
     "file.dat" every 150 using 3:9 title '' with lines, \ 
     "file.dat" every 150 using 3:10 title '' with lines, \ 
     "file.dat" every 150 using 3:11 title '' with lines 

和相应的file.dat看起来是这样的:

(.........) 
6 1303238171 0 134.332413 140.304581 138.496323 134.021835 105.546227 107.943008 102.812347 109.098152 972.554886 
7 1303238171 0 134.232849 140.35408 138.186279 132.489319 105.941231 108.020004 103.009338 109.75119 971.98429 
8 1303238171 0 135.125488 138.125427 138.100098 132.543625 106.153214 107.507042 102.338707 125.25383 985.147431 
9 1303238171 0 134.341904 139.913376 138.070648 132.368164 106.214211 108.506859 102.963211 155.246277 1017.62465 
10 1303238171 1 134.163055 140.042313 139.231033 132.444244 106.161438 108.850807 103.753929 162.19162 1026.838439 
11 1303238171 1 134.179016 140.187561 138.68425 132.572876 107.169006 107.507057 102.974937 120.698692 983.973395 
12 1303238171 1 134.40593 140.569382 138.604828 139.589264 106.631699 108.092957 103.634117 108.943863 980.47204 
13 1303238172 1 134.353363 138.062759 138.344818 140.665985 107.538544 108.983582 104.300827 175.732117 1047.981995 
14 1303238172 1 135.190887 140.411484 138.174591 133.823929 105.412224 108.240623 102.790154 120.459106 984.502998 
(.........) 

是否有容易办法让这个图表看起来像在gnuplot examples page围栏情节是怎样的?我仔细看了一下,看起来很复杂。我希望我可以在不更改file.dat的情况下轻松添加第三个维度。你们是否可能知道实现这个目标的方法?或者你有什么其他的想法,我可以如何让这张图表更好的可读性?

最好的问候,

回答

2

也许我不明白你的问题正确。但是,由于您将时间绘制在x轴上,因此将其绘制为3d绘图似乎很尴尬,因为时间只是一维值。如果您正在处理曲面(2D数据),那么您通常会绘制3D图,您可以绘制温度,压力或甚至时间曲线(至少1d数据)。

为了使绘图更具可读性并取决于您的数据,也许多点可以减轻事情的负担。那么你可以将你的数据分组在一些情节中,以便为y轴设置新的范围?!

如果我可以指出一些简化你的脚本:
使用迭代功能,像这样:

plot for [i=4:11] "file.dat" every 150 using 3:i title '' with lines 

又使该行多了几分明快:

plot for [i=4:11] "file.dat" every 150 u 3:i t '' w l 

然后再次,如果你不想在你的阴谋中的传说:

set key off 
plot for [i=4:11] "file.dat" every 150 u 3:i w l 

建议我没有测试上面的几行,所以可能会有一些拼写错误^^。

+0

感谢您的回复!我不想绘制曲面,我只是想通过使用栅栏图来区分“线条”,就像在这个示例页面中一样:http://gnuplot.sourceforge.net/demo/surface1.html(最后三分之一页...)。然后,x轴数据将如1-8所示,时间将为y,另一个轴为z。 – imbaer

+0

@exasam个人而言,我不认为你的情节会从围栏“风格”中获益。在我看来,你仍然需要一些随时间变化的二维数据(这就是第三维)。然后,即使你以这种方式进行绘图,一些地块会覆盖其他地块,并导致看起来很奇怪的情节,但信息量很少。 你为什么不简单地尝试一下。在你的链接中使用教程,看看你得到了什么,如果你想保留它!? – Woltan

+0

我花了很多时间在这个上面,结果如你所预测的那样,得出的结论是围栏图可能看起来很有趣,但是以损失信息为代价(由于重叠图)。所以我决定拆分数据并制作多重图。 – imbaer