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

时间:2019-01-24 23:41:46

标签: gnuplot

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

plot 'foo.csv' u 1:2:($3/100) w circles

可以,但是我想知道是否有更好的方法。

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

1 个答案:

答案 0 :(得分:1)

“ 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