plot - 具有来自数据点的 2 x 轴的 gnuplot

标签 plot gnuplot

我有一个数据文件,y轴的数据在第三列。我想要 x1 上的第一列和 x2 上的第二列给出的比例。标准方法是:

plot data u 1:2 axes x1y1, data u 1:3 x2y1

但这会产生两个情节,这是我想避免的。当然,可以用颜色或其他一些肮脏的技巧来实现上述工作。这使得整个情节代码变得非常繁琐。另一种不错的方法是按照建议使用 multiplot here 。但这并不是我真正的目标,因为我想要真正的 x2 轴。

我想到的另一种方法是设置 x2range,但这意味着要转到源文件并计算出最小值和最大值,或者使用 gnuplot 中的一些统计数据(这感觉像是浪费时间)对于这么简单的事情)。

还有比上面更简单优雅的方式吗? (我特别担心解决方案写起来很短,该图可以由多个(> 5)数据集组成,并且我想避免将每个数据集绘制两次。

最佳答案

这可以通过这种方式完成,告诉 gnuplot 重新扫描文件,其中第二列作为 x2 值,但对于第二个图仅扫描无效的 y 值:

set xtics nomirror
set xrange [:] noextend
set x2tics
set x2range [:] noextend
plot '/tmp/f.gdat' u 1:3 w l, '' u 2:(1/0) ax x2y1

例如,您可以在 x 上使用摄氏度、在 x2 上使用华氏度来绘制此数据:

0       32      0
30      86      1
60      140     2
90      194     3

请注意,只有当第 2 列与第 1 列关联时,这才有意义。如果您知道仿射关系,那么使用 set link 会更好。

关于plot - 具有来自数据点的 2 x 轴的 gnuplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45871888/

相关文章:

python - 在 Python 中的同一图上绘制具有一个 x 轴和 2 个不同 y 轴的四条曲线

python - 为 SymPy 图检索 matplotlib ContourSet

pdf-generation - GNUPlot 中的高分辨率散点图?

graph - GnuPlot中的线图,其中线色是数据文件中的第三列?

date - gnuplot:xdata 时间和计算

png - 如何用gnuplot在标题中显示 '@'并且输出格式为png?

r - 图像与 ggplot : how to plot color legend?

python - 在 python 中向绘制线(不是轴)添加刻度线?

python - 如何使用 matplotlib 实时绘制不断增长的数据文件?

datetime - 如何使用 GnuPlot 从存储在单独列中的 CSV 文件日期和时间绘制时间序列图表?