Как вы можете использовать переменные при определении xrange в gnuplot?

В случае, если вы собираетесь делать это часто, лучшим решением было бы сначала установить столбец даты как индекс, который преобразует столбец в DateTimeIndex и использовать следующее условие, чтобы разрезать любой диапазон дат.

import pandas as pd

data_frame = data_frame.set_index('date')

df = data_frame[(data_frame.index > '2017-08-10') & (data_frame.index <= '2017-08-15')]
0
задан Mark Setchell 13 July 2018 в 18:24
поделиться

2 ответа

Первая ошибка:

current_time=$(date +"%T")
new_time=$(date -d "10 seconds" +'%H:%M:%S')

current_time должно быть объявлено перед запуском sar-P, а new_time необходимо объявить после запуска sar-P

Вторая ошибка

gnuplot <<EOF

должно быть

gnuplot -p <<EOF

Это необходимо для того, чтобы график сохранялся после выполнения функции gnuplot.

0
ответ дан Dennis Z 17 August 2018 в 12:27
поделиться

Кажется, вы смешиваете bash и gnuplot. Первые две строки выглядят как bash, а остальные выглядят как gnuplot, поэтому вы, вероятно, захотите что-то вроде этого:

#!/bin/bash

current_time=$(date +"%T")
new_time=$(date -d "10 seconds" +'%H:%M:%S')

# Start "gnuplot" passing in some "bash" variables
gnuplot <<EOF
set xdata time
set timefmt "%H:%M:%S"
set xrange ["$current_time":"$new_time"]
set format x "%H:%M:%S"
plot "sar-P-plots11" using 1:2
pause -1 "Hit any key to continue"
EOF

Сохраните сценарий как plotit, а затем сделайте его исполняемым:

chmod +x plotit

, а затем запустите его с помощью:

./plotit
0
ответ дан Mark Setchell 17 August 2018 в 12:27
поделиться
  • 1
    Спасибо за вашу помощь, Марк! Скажем, я хотел выполнить это внутри другого скрипта. Я бы просто ссылался на него в сценарии? Потому что, когда я это пробовал, это не сработало. – Dennis Z 13 July 2018 в 17:41
  • 2
    Я не уверен, что понимаю, что вы пытаетесь сделать. Вы можете скопировать весь материал из current_time=$(date +"%T") в EOF и вставить все это в другой скрипт bash, если это то, что вы имеете в виду. – Mark Setchell 13 July 2018 в 17:50
  • 3
    Когда я запускал его так, как вы мне сказали, я получил строку «0: предупреждение: неправильный формат времени в строке». У меня есть один скрипт, который выводит результат из команды sar-P, а затем я отформатирую его на то, что хочу. Внутри этого скрипта я бы хотел назвать этот скрипт, который возьмет новые хорошие данные и нарисует его с помощью gnuplot. – Dennis Z 13 July 2018 в 17:50
  • 4
    Очень интересно, что все отформатировано правильно, и единственная проблема здесь заключается в использовании переменных вместо жестко закодированных времен. Причина, по которой я хочу использовать эти переменные, заключается в том, что я не хочу жестко кодировать определенный временной диапазон, когда я собираю свои данные каждый раз, когда запускаю свой скрипт. – Dennis Z 13 July 2018 в 17:55
  • 5
    Исходная строка, начинающаяся с new_time=..., кажется неправильной. Я обновил его в ответе. – Mark Setchell 13 July 2018 в 18:03