Как я могу показать max. и/или мин. значения (ов) графа на графике в их подходящем положении автоматически?Gnuplot: как построить максимальное и/или минимальное значение
3
A
ответ
3
Вы можете сделать это «полуавтоматически» с помощью команды stats
. Эта команда может извлечь некоторые статистические значения из набора данных, но требует некоторой дополнительной обработки:
Extract минимального и максимального у-значения, при условии, что ваш файл данные содержит два столбца, х-значение в первом, у-значения во втором столбце
stats 'file.dat' using 2 nooutput name 'Y_'
Это дает вам мин/макс Y-значения в переменных
Y_min
иY_max
, но не соответствующие х-значение.Предыдущий шаг дает вам только получить соответствующие показатели, которые необходимо запускать
stats
снова для того, чтобы получить рентгеновские значения: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-серия - это данные времени. «Команда статистики недоступна в режиме timedata» – gaoithe
@gaoithe Да, я знаю. Для данных времени вы должны сделать что-то вроде 'stats 'file.dat', используя 2 nooutput name 'Y_'; set timefmt '% H:% M:% S'; stats 'file.dat' используя (timecolumn (1)) каждый :: Y_index_min :: Y_index_min noutput; ...; установить время xdata; сюжет ... ' – Christoph
да, спасибо. Я нашел ваш ответ здесь полезным: http://stackoverflow.com/questions/17977086/plotting-only-the-common-data-in-a-data-series-with-gnuplot Мое решение было более сложным, чем использование пробелов- полевой файл. С датой/временем внутри кавычек с пробелами внутри этой строки тоже. Пришлось конвертировать в .csv. команда статистики очень полезна! – gaoithe