Gnuplot:如何绘制最大值和/或最小值

Posted

技术标签:

【中文标题】Gnuplot:如何绘制最大值和/或最小值【英文标题】:Gnuplot: how to plot max and /or min value [closed] 【发布时间】:2015-07-19 18:31:07 【问题描述】:

如何显示最大值。和/或分钟。绘图中的图形的值是否自动在其适当位置?

【问题讨论】:

【参考方案1】:

您可以使用stats 命令“半自动”执行此操作。此命令可以从数据集中提取一些统计值,但需要进行一些修改:

    提取最小和最大 y 值,假设您的数据文件有两列,第一列中的 x 值,第二列中的 y 值

    stats 'file.dat' using 2 nooutput name 'Y_'
    

    这将为您提供变量 Y_minY_max 中的最小/最大 y 值,但不提供相应的 x 值。

    上一步仅让您获得相应的索引,这需要您再次运行 stats 才能获得 x 值:

     stats 'file.dat' using 1 every ::Y_index_min::Y_index_min nooutput
     X_min = STATS_min
     stats 'file.dat' using 1 every ::Y_index_max::Y_index_max nooutput
     X_max = STATS_max
    

    在相应坐标处设置标签和/或点

    set label 1 sprintf("%.2f", Y_min) center at first X_min,Y_min point pt 7 ps 1 offset 0,-1.5
    set label 2 sprintf("%.2f", Y_max) center at first X_max,Y_max point pt 7 ps 1 offset 0,1.5
    ...
    plot ...
    

【讨论】:

看起来不错。如果 x 系列是时间数据,则不起作用。 "统计命令在时间数据模式下不可用" @gaoithe 是的,我知道。对于时间数据,您必须执行 stats 'file.dat' using 2 nooutput name 'Y_'; set timefmt '%H:%M:%S'; stats 'file.dat' using (timecolumn(1)) every ::Y_index_min::Y_index_min noutput; ...; set xdata time; plot ... 之类的操作 好的,谢谢。我发现您的回答在这里很有帮助:***.com/questions/17977086/… 我的解决方案更复杂,因为使用空格分隔文件。日期/时间在引号内,该字符串内也有空格。必须转换为 .csv。 stats 命令非常有用! @gaoithe 你不需要 csv,``timecolumn` 可以正确处理空格分隔的日期/时间字段。 gnuplot 5.2:Stats 命令在极坐标模式下不可用

以上是关于Gnuplot:如何绘制最大值和/或最小值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 r 中绘制最小值、最大值和平均值

如何分组聚合最小值/最大值并绘制分组条形图

如何缩小具有已知最小值和最大值的数字范围

opencv —— calcHistminMaxLoc 计算并绘制图像直方图寻找图像全局最大最小值

如何在SQL中查询最大值与最小值

如何使用c#设置日期时间图表的最小值和最大值?