首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用我的第一行数据来重新缩放gnuplot中的数据?

如何使用我的第一行数据来重新缩放gnuplot中的数据?
EN

Stack Overflow用户
提问于 2018-02-10 22:46:23
回答 1查看 90关注 0票数 0

我有一个数据文件,如下所示:

代码语言:javascript
复制
1 3 4 5 5 3 4
4 5 5 3 5 3 2
3 4 5 3 5 2 5

我使用这个文件通过下面的代码在gnuplot中构建一个热图:

代码语言:javascript
复制
set term png
set out "test.png"
set pm3d map
set size ratio 1
set pm3d interpolate 0,0
set tics out nomirror
stats 'test.dat' nooutput
N = STATS_records
M = STATS_columns
splot 'test.dat' matrix using ($1/(N-1)*10-5):($2/(M-1)*3-(-1)):3 notitle
set out

它工作正常,一切都很好。

除了现在我想删除代码中的常量(10,5,3,-1),并将它们替换为我的数据文件中的头文件。

数据文件应为:

代码语言:javascript
复制
10, 5, 3, -1
1 3 4 5 5 3 4
4 5 5 3 5 3 2
3 4 5 3 5 2 5

代码类似于:

代码语言:javascript
复制
delta_x = ???
x_min = ???
delta_y = ???
y_min = ???
set term png
set out "test.png"
set pm3d map
set size ratio 1
set pm3d interpolate 0,0
set tics out nomirror
stats 'test.dat' nooutput
N = STATS_records
M = STATS_columns
splot 'test.dat' matrix using ($1/(N-1)*delta_x-min_x):($2/(M-1)*delta_y-min_y):3 notitle
set out

当为热图加载数据时,我也应该停止使用第一行,所以$1,$2不知何故是错误的。

如何仅使用第一行读取变量并开始从文件的第二行读取数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-10 23:54:14

结合使用statsevery从第一行开始获取常量,然后使用awk输出跳过第一行。

代码语言:javascript
复制
stats 'test.dat' every ::0::0 using 1:2 nooutput
delta_x = STATS_min_x
x_min = STATS_min_y
stats 'test.dat' every ::0::0 using 3:4 nooutput
delta_y = STATS_min_x
y_min = STATS_min_y
set size ratio 1
set pm3d interpolate 0,0
set tics out nomirror
stats 'test.dat' every ::1 nooutput
N = STATS_records
M = STATS_columns
splot '<awk "NR>1 {print}" test.dat' matrix using ($1/(N-1)*delta_x-x_min):($2/(M-1)*delta_y-y_min):3 notitle
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48721966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档