Построение графика GNUPlot после вычисления

#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))
  

Обратите внимание на скобки снаружи аргумента, который использует значение определенного столбца.

Смотрите здесь для получения дополнительной информации.