Graph Gnuplot中的三维参数图

Graph Gnuplot中的三维参数图,graph,gnuplot,parametric-equations,Graph,Gnuplot,Parametric Equations,目前,我正在尝试创建类似以下内容的三维参数化图形: 可在此处找到: 使用此处的脚本: 我的图表如下所示: 我用这个: 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轴绘制的能力。我一直在尝试复制这一点,但到目前为止一

目前,我正在尝试创建类似以下内容的三维参数化图形:

可在此处找到:

使用此处的脚本:

我的图表如下所示:

我用这个:

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轴绘制的能力。我一直在尝试复制这一点,但到目前为止一直失败

如果只想从文件中绘制原始数据,实际上不需要依赖于
参数化

样本数据
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
其中,
脉冲
从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使用了规则间隔的值,但这并不重要

当然,其他的变化也是可能的。也许或者可能有进一步的帮助


用于生成
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)

n如果只想从文件中绘制原始数据,实际上不需要依赖
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
其中,
脉冲
从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使用了规则间隔的值,但这并不重要

当然,其他的变化也是可能的。也许或者可能有进一步的帮助


用于生成
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)

n您能给我们看一下您的数据样本吗,只是为了了解三维的真实情况以及z随x和y的变化情况吗?当然可以:z y 0.15899994 83906.71679 0.16000011184700.96927 0.174999982 84700.96928(第一个是Z,第二个是Y,对于X,我想使用任意数字来组织图形)你能给我们看一个你的数据样本,仅仅为了知道三维是什么,以及z是如何随x和y变化的吗?当然可以:z y 0.15899994 83906.71679 0.16000011184700.96927 0.174999982 84700.96928(第一个是Z,第二个是Y,对于X,我想使用任意数字来组织图形)我的当前图形有一个问题。我需要Y轴进行时间格式化(这样就不会从不存在的时间中断:9:60-9:99),但Gnuplot识别timemt的时间不超过秒。我不确定我是否理解正确,但对于这样的数据(分钟:秒)
2:30 3.1\2:35 4.7\6:48 9.4\…
,类似于
set-xdata-time\set-timemt“%m:%s”
的命令也会起作用你能说得更精确一点吗?我当前的图表有一个问题。我需要Y轴进行时间格式化(这样就不会有不存在的时间中断:9:60-9:99),但Gnuplot识别timemt的时间不超过几秒。我不确定我是否理解正确,但数据(分钟:秒)像这样的
2:30 3.1\2:35 4.7\6:48 9.4\…
,像
set-xdata-time\set-timemt“%m:%s”
这样的命令可以工作。(但也请参见)您是否可以更精确一些?