目前,我正在尝试创建类似于此的三维参数图:
可在此处找到:http://gnuplot.sourceforge.net/demo/surface1.html。
使用脚本:http://gnuplot.sourceforge.net/demo/surface1.17.gnu
我的图表如下所示:
我正在使用它:
set datafile separator ","
set parametric
x0 = 0
x1 = 1
x2 = 2
splot 'January5.csv' u x0:1:3 with lines, 'test.csv' u x1:1:2 with lines
显然,我的图表缺乏比较。我非常喜欢第一张图表沿x轴绘图的能力。我一直试图复制这个,但到目前为止一直没能失败。
答案 0 :(得分:1)
如果您只想从文件中绘制原始数据,则不需要依赖parametric
。
样本数据xyz.txt
看起来像嘈杂的正弦时间序列:
1 0 9.43483356296457
1 0.0204081632653061 10.2281885806631
1 0.0408163265306122 10.9377108185805
...
3 0.959183673469388 10.2733398482972
3 0.979591836734694 10.1662011241681
3 1 10.4628112585751
(第一列是一个整数值,用于编码x个位置,第二列和第三列用于y和z。我附加了用于在结尾处生成这些数据的R脚本。)
我只想使用
splot 'xyz.txt' using 1:2:3 with impulses
其中impulses
从z的最小值绘制垂直线。你可以改变这个bevahior;例如,如果你想从z = 0开始,你可以使用
set zrange [-1:12]
set ticslevel 0
zmin = 0
zr(x) = (x==0 ? zmin : x)
splot 'xyz.txt' using 1:2:(zr($3)) with impulses
请注意,我使用了y的常规间隔值,但这并不重要。
当然,其他变化也是可能的。也许Fence plots with a some-liner或Wall charts可能会有进一步的帮助。
R脚本用于生成xyz.dat
:
n <- 50 # number of observation per sequence
k <- 3 # number of sequences
t <- seq(0, 1, length=n) # sampling rate
xyz <- data.frame(x=rep(1:k, each=n), y=t, z=sin(2*pi*t*2.1)+.25*rnorm(n*k)+10)
write.table(xyz, file="xyz.txt", row.names=FALSE, col.names=FALSE)