gnuplot - 使用标题列作为 y 轴的固定值
问题描述
我有看起来像这样的数据(因为空行 gnuplot 不会绘制任何东西,所以我有一个中断的图表)。
0,1,2,4,5,6
899.9999999999869,899.9999999999869,899.9999999999869,3602759.9999999995,845649.9999999999,899.9999999999869
842729.9999999999,842729.9999999999,842729.9999999999,5517769.999999999,3600219.9999999995,842729.9999999999
,,,,,
845649.9999999999,845649.9999999999,845649.9999999999,,,
3600219.9999999995,3600219.9999999995,3600219.9999999995,,,
到目前为止,我将这些列中的每一列都放在了单独的文件中,并将其绘制成这样:
plot for [i=1:6] "".i.".dat" using 2:(i) with linespoints
(i)
导致 gnuplot 通过两个点画一条线,都在一个固定的 y 上。
我可以做同样的事情,但使用第一行/每列的标题作为 y 的值吗?例如,对于第二列,我想用 绘制plot "data.dat" using 2:(2)
,但哪里(2)
不是硬编码而是取自标题?
解决方案
是的,如果您的 gnuplot 版本足够新。从(我认为)版本 5.2.2 开始,可以在 using 说明符内评估函数“columhead(x)”。然而,它计算为一个字符串,因此在将其用作 ay 坐标值之前必须将其转换为一个数字:
set datafile separator comma
plot for [i=1:6] "".i.".dat" using 2:(real(columnhead(i))) with linespoints title "column ".columnhead(i)
推荐阅读
- sql-server - 如何在 SP 参数中转义方括号
- batch-file - 在 FOR 循环期间设置变量和调用结果;批处理脚本窗口
- ios - 如果显示键盘,则 Swift 表格视图(聊天 UI),整个视图变低
- angular - Firebase 通知:浏览器问题
- java - FHIR 搜索中的类似 GROUP BY 的功能
- scala - 为什么在创建表时出现“创建 Hive TABLE (AS SELECT) 需要 Hive 支持”错误?
- node.js - dockerfile - 添加依赖项 - libjpeg错误
- jenkins - Gitlab合并请求事件未触发Jenkins多分支管道
- git-remote - 如何使用脚本 RHEL 7 创建 git 远程存储库
- angularjs - grunt usemin - concat + uglify sourcemap