Предположим, я хочу построить график и показать некоторые важные моменты на графике. Как мне это сделать в gnuplot? Например, на графике y = x 2 я хочу показать (2,4) и (4,16).
2 ответа
Я не думаю, что приведенный выше ответ очень полезен, потому что, когда я пишу это, первый метод результатов Google крайне неудовлетворителен.
Он использует способность gnuplot читать стандартный вывод для генерации данных, так что
plot "< echo '1 2'"
поместит одну точку данных в точку x = 1, y = 2.
Это имеет несколько недостатков, которые делают его практически непригодным для использования.
Во-первых, нет хорошего способа передачи переменных в этот метод, потому что он уже использует оба типа кавычек. Поэтому использование макросов для передачи переменных в операторах sprintf отключено, поскольку необходим третий тип цитирования.
Во-вторых, требуется запустить команду plot, чтобы вызвать точку. Это означает, что если я хочу построить более одной точки, я должен добавить операторы графика к основному оператору графика. Если я хочу сделать это каким-либо образом с помощью сценариев, а не просто как явный список, я возвращаюсь к необходимости запускать макрос, который, как я уже указывал, не работает для этой техники.
У Gnuplot есть две техники, которые намного больше подходят для получения одной точки.
Во-первых, если вам просто нужен маркер в точке, вы можете использовать тип объекта gnuplot для построения круга в точке, например
set object circle at <x>,<y> size <r>
где <x>
и <y>
- координаты точки, а <r>
- размер круга, который нужно нарисовать. Круг может быть цветным, заполненным, прозрачным и т.д., Как и любой объект gnuplot.
Во-вторых, если вам действительно нужен маркер с определенным стилем точек, вы можете использовать команду label
gnuplot. Установив текст метки пустым и назначив тип точки, точка будет нарисована в указанной координате, например,
set label <i> "" at <x>,<y> point pointtype <n>
устанавливает точку с индексом тега <i>
в точке x=<x>
, y=<y>
с типом точки <n>
(в терминале wxt по умолчанию n = 1 - красные крестики, n = 2 - зеленые соленые, n = 3 это синие звездочки и т.д ...)
Таким образом, можно задать несколько точек для построения графика, и можно выдать отдельную команду построения для другой функции без необходимости загромождать оператор заговора со всеми отдельными точками, которые будут отображаться.
Сначала вам нужно определить функцию для построения f()
например, использовать символ возведения в степень **
.
Постройте два графика, один для вашей функции, а другой для важных моментов.
Затем введите данные ваших очков 4 16
и 2 4
. Вы можете прекратить использование e
.
f(x) = x ** 2
plot f(x), '-' with points
4 16
2 4
e
Теперь вы можете настроить свой рендеринг, как вы.