【发布时间】:2012-12-07 19:36:56
【问题描述】:
我正在绘制文件中的数据。数据点采用公制单位。我想在右侧 (y2) 显示标准单位的第二个刻度。
该文件表示火箭发动机推力随时间的变化。数据以牛顿为单位。我想在左边显示牛顿(这自然会发生),在右边显示磅力。转换是一个简单的因数(将 N 乘以 0.2248 得到 lbf)。
我可以设置 y2tics,如果我手动设置 y2range,它们会出现在右侧。我不知道如何将 y2range 自动设置为 y1range * 一个因子。
我的最终解决方案是绘制两次,一次在 y1 上以牛顿为单位,一次在 y2 上以磅为单位,并使 y2 绘图几乎不可见:
plot '-' using 1:($2*0.2248) with dots axes x1y2 lc rgb 'white' notitle, \
'' using 1:2 with lines lc rgb '<color>' title '<title>'
上述解决方案通常会生成略微不同的 y 刻度:使用 autoragne,gnuplot 会向上取整范围,因此每个轴上的顶部刻度是一个整数,当然不同单位的取整是不同的。
最终我得到的 Python 代码可以在每个图中找到最高推力值,然后我明确地将 yrange 设置为该数字,并将 y2range 设置为该数字 * 0.2248:
f.write("set yrange [0:%s]; set y2range[0:%s]\n" % (peak_thrust, peak_thrust*NEWTON_LBF));
这是最终结果:http://www.lib.aero/hosted/motors/cesaroni_12-15-12.html(下图示例)
【问题讨论】:
-
很好的信息。从 2017 年 11 月开始感谢您。但是,我看到您说“带点”,但我没有看到任何点。另外,你能展示一下你的数据文件是什么样子的吗?
标签: gnuplot