2

我能够从这里成功地重现抖动示例: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 --version gnuplot 5.2 patchlevel 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
4

1 回答 1

3

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

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

这与“设置抖动”不同,因为所有点都会随机移位,而使用抖动时,只有重叠点会移位,并且移位不是随机的。

在此处输入图像描述

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

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

在此处输入图像描述

于 2019-01-16T17:25:58.167 回答