Gnuplot:我可以在某些数据点处拉伸 x 轴吗?
Gnuplot: can I make x axis stretch at some data points?
我有时间点向量,将在 x 轴上表示。
这些时间点有的出现在某个星座,有的时间点出现在不同的星座。
我想将第一个符号的 x 缩放到 y 为 x=1:y=1 .
我想将第二个符号的 x 缩放到 y 为 x=2:y=1
这样我就会有一个 x 轴在某些点拉伸的图表“x unit = double space 例如 2 cm for 1 hour”并在其他点收缩“x unit= single space e.g. 1 cm for 1 小时
我有一个与时间数组具有相同索引的数组,其中 1 个用于单个 space 时间点,2 个用于双 space 时间点。
我可以在 gnuplot 中绘制这个吗?
更新:
如果在 gnuplot 中不可能,是否有任何其他库可以通过控制每个点的轴刻度来绘制点?“一个数组用于每个点的轴刻度,另一个用于轴数据??”
更新:
数据 points:100 50 70 130 40 20 30 50 88 93
点 width:1 1 1 2 2 2 2 1 1 1
时间滴答:1 2 3 4 5 6 7 8 9 10
这些时间刻度应该在 x 轴上,但 space 在 1 2 3 之间作为 1 个单位,例如1 cm 和 space 在 4 5 6 7 之间作为 2 个单位 例如2 cm 然后 8 9 10 之间为 1 个单位
数据点将是 1000000,随机 1 和 2 个单位部分。
我不知道怎么画他们的图。
我仍然不确定我是否完全理解,但这就是我想你可能想要的。
因此,您的事件只是从 1 开始计数,... N。这些事件不会按常规时间步长发生。有时 1 秒后,有时 2 秒后。为了绘制它,您只需要总结所有这些时间差异,例如在变量 t
.
中
代码:
### add variable stepsize for x-values
reset session
$Data <<EOD
1 1 100
2 1 50
3 1 70
4 2 130
5 2 40
6 2 20
7 2 30
8 1 50
9 1 88
10 1 93
EOD
set grid x
plot t=0 $Data u (t):(t=t+,) w lp pt 7 notitle
### end of code
结果:
加法:
这是试图理解您的意思的另一种尝试。
这就是我现在从你的问题和评论中了解到的。
你有事件,它们之间的距离如下:
1,2,3之间的距离应为1,3,4,5,6,7之间的距离应为2,7,8,9,10之间的距离应为1.
# event 1 2 3 4 5 6 7 8 9 10
# distance 1 1 2 2 2 2 1 1 1
代码:(可以跳过plot命令的第二行,只是为了显示事件编号)
### add variable stepsize for x-values
reset session
$Data <<EOD
1 1 100
2 1 50
3 1 70
4 2 130
5 2 40
6 2 20
7 2 30
8 1 50
9 1 88
10 1 93
EOD
set grid x
set offsets 0,1,0,0
plot t=0 $Data u (t=t+):3 w lp pt 7 notitle, \
t=0 '' u (t=t+):3:1 w labels offset 0,1 notitle
### end of code
结果:
这些时间点有的出现在某个星座,有的时间点出现在不同的星座。
我想将第一个符号的 x 缩放到 y 为 x=1:y=1 .
我想将第二个符号的 x 缩放到 y 为 x=2:y=1
这样我就会有一个 x 轴在某些点拉伸的图表“x unit = double space 例如 2 cm for 1 hour”并在其他点收缩“x unit= single space e.g. 1 cm for 1 小时
我有一个与时间数组具有相同索引的数组,其中 1 个用于单个 space 时间点,2 个用于双 space 时间点。
我可以在 gnuplot 中绘制这个吗?
更新:
如果在 gnuplot 中不可能,是否有任何其他库可以通过控制每个点的轴刻度来绘制点?“一个数组用于每个点的轴刻度,另一个用于轴数据??”
更新:
数据 points:100 50 70 130 40 20 30 50 88 93
点 width:1 1 1 2 2 2 2 1 1 1
时间滴答:1 2 3 4 5 6 7 8 9 10
这些时间刻度应该在 x 轴上,但 space 在 1 2 3 之间作为 1 个单位,例如1 cm 和 space 在 4 5 6 7 之间作为 2 个单位 例如2 cm 然后 8 9 10 之间为 1 个单位
数据点将是 1000000,随机 1 和 2 个单位部分。
我不知道怎么画他们的图。
我仍然不确定我是否完全理解,但这就是我想你可能想要的。
因此,您的事件只是从 1 开始计数,... N。这些事件不会按常规时间步长发生。有时 1 秒后,有时 2 秒后。为了绘制它,您只需要总结所有这些时间差异,例如在变量 t
.
代码:
### add variable stepsize for x-values
reset session
$Data <<EOD
1 1 100
2 1 50
3 1 70
4 2 130
5 2 40
6 2 20
7 2 30
8 1 50
9 1 88
10 1 93
EOD
set grid x
plot t=0 $Data u (t):(t=t+,) w lp pt 7 notitle
### end of code
结果:
加法:
这是试图理解您的意思的另一种尝试。 这就是我现在从你的问题和评论中了解到的。 你有事件,它们之间的距离如下: 1,2,3之间的距离应为1,3,4,5,6,7之间的距离应为2,7,8,9,10之间的距离应为1.
# event 1 2 3 4 5 6 7 8 9 10
# distance 1 1 2 2 2 2 1 1 1
代码:(可以跳过plot命令的第二行,只是为了显示事件编号)
### add variable stepsize for x-values
reset session
$Data <<EOD
1 1 100
2 1 50
3 1 70
4 2 130
5 2 40
6 2 20
7 2 30
8 1 50
9 1 88
10 1 93
EOD
set grid x
set offsets 0,1,0,0
plot t=0 $Data u (t=t+):3 w lp pt 7 notitle, \
t=0 '' u (t=t+):3:1 w labels offset 0,1 notitle
### end of code
结果: