Gnuplot:从列到特定范围的线性缩放数据

Gnuplot:从列到特定范围的线性缩放数据,gnuplot,Gnuplot,我正在使用gnuplot制作一个圆图。前两列在XY平面上绘制一个点,我希望第三列指示圆的大小。第三列的数据介于1000-5000之间,因此我一直在使用: plot 'foo.csv' u 1:2:($3/100) w circles 这样可以,但我想知道是否有更好的方法 我使用d3.js制作了相同的图表,其中我使用scaleLinear()函数将数据从第三列(域,0-max值)映射到范围(1-10)。gnuplot中是否有类似的功能,我可以将数据映射到这样的特定范围?stats命令可以提供缩放

我正在使用gnuplot制作一个圆图。前两列在XY平面上绘制一个点,我希望第三列指示圆的大小。第三列的数据介于1000-5000之间,因此我一直在使用:

plot 'foo.csv' u 1:2:($3/100) w circles
这样可以,但我想知道是否有更好的方法

我使用d3.js制作了相同的图表,其中我使用scaleLinear()函数将数据从第三列(域,0-max值)映射到范围(1-10)。gnuplot中是否有类似的功能,我可以将数据映射到这样的特定范围?

stats命令可以提供缩放所需的信息。 如果要将输入范围[0:max]缩放为有效[0:10],则可以执行以下操作:

stats 'foo.csv' using 3 nooutput
plot 'foo.csv' using 1:2:($3 * 10./STATS_max) w circles
如果线性范围不一定从零开始,那么首先定义一个缩放函数可能是值得的

stats 'foo.csv' using 3 nooutput
scale(y) = 10. * (y - STATS_min) / (STATS_max - STATS_min)
plot 'foo.csv' using 1:2:(scale($3)) with circles