gnuplot中的抖动点。数据输入文件格式

时间:2019-01-15 12:25:27

标签: gnuplot jitter

我能够从此处成功复制抖动示例:http://gnuplot.sourceforge.net/demo/violinplot.html

但是,当我尝试使用自己的数据时,这些点不会“抖动”。

这是数据文件(data.dat):

10 1 1 3 8 8 8
20 2 2 3 8 8 8
30 3 3 3 8 8 8

这是一个最小的gnuplot输入文件:

set jitter
plot 'data.dat' using 1:2 with points, '' u 1:3 with points, '' u 1:4 with points, '' u 1:5 with points, '' u 1:6 with points, '' u 1:7 with points

这些点在彼此的正上方,而我希望在同一位置的点稍微偏移(x轴)。

我已经安装了最新版本的gnuplot: $ gnuplot-版本 gnuplot 5.2补丁程序级别6

使用解决方案进行编辑: @Ethan的评论为我清除了它。通过重新组织输入数据文件,使它成为一个包含内部“冲突”的单个数据集,而不是读取许多单独的数据集,就可以解决问题。例如:

10 1
10 1
10 3
10 3
20 2
20 2
30 8
30 8

我的gnuplot文件现在是:

set jitter
plot 'data.dat' using 1:2 with points

1 个答案:

答案 0 :(得分:2)

如注释中所述,

“设置抖动”将不适用于多个数据集。您可以通过在“使用”说明符中添加随机位移来做类似的事情。

plot for [col=2:7] 'data.dat' using 1:(column(col) + (rand(0)-0.5)/2.) with points

这与“设置抖动”不同,因为所有点将被随机移位,而在抖动情况下,仅重叠的点会移位并且移位不是随机的。

enter image description here

或者,由于您的情况下各列是不同的,因此您可能希望根据列号进行系统地移动:

plot for [col=2:7] 'data.dat' using (column(1)+col/4.) : (column(col))

enter image description here