#gnuplot
#gnuplot
Вопрос:
У меня есть файл данных, в котором перечислены попадания и промахи для определенной системы кэша. Ниже приведен формат файла данных
время попадания отсутствует
1 12 2
2 34 8
3 67 13
…
Чтобы построить 2D-график в GNUPlot для времени в зависимости от попаданий, команда будет:
plot "data.dat" using 1:2 using lines
Теперь я хочу построить график зависимости времени от отношения попаданий, для этого могу ли я выполнить некоторые вычисления для второго столбца, например :
plot "data.dat" using 1:2/ (2 3) using lines
Здесь 1, 2, 3 представляют номер столбца.
Любая ссылка на такого рода построение графика также будет оценена.
Заранее спасибо.
Ответ №1:
То, что у вас есть, почти верно. Вам нужно использовать $
символы для обозначения столбца в вычислении:
plot "data.dat" using 1:($2/($2 $3))
Поскольку вы используете $n
для ссылки на номера столбцов, теперь вы можете использовать n
для ссылки на само число. Например,
plot "data.dat" using 1:(2 * $2)
удвоит значение во втором столбце.
Комментарии:
1. Спасибо! Не могли бы вы также сказать мне, если я хочу умножить определенный столбец, скажем, на 5, какой будет команда?
2. @Swaranga Sarma отредактировал ответ, включив в него пример. Я использовал 2 вместо 5, чтобы подчеркнуть, что номера столбцов и литералы можно использовать вместе без проблем.
Ответ №2:
В общем, вы даже можете построить функции C, такие как log и cos для данного столбца. Например:
plot "data.dat" u 1:(exp($2))
Обратите внимание на скобки снаружи аргумента, который использует значение определенного столбца.
Смотрите здесь для получения дополнительной информации.