Как заполнить раздел между двумя кривыми внутри определенного диапазона? - PullRequest
2 голосов
/ 23 апреля 2019

Я пишу отчет и мне нужно сделать несколько хороших сюжетов, чтобы объяснить мою проблему.Для этого я хотел бы построить две кривые f (x) и g (x) и заполнить пространство между xmin и xmax.Есть ли способ сделать это?Кстати, я использую gnuplot 5.2 Я пробовал это, но безуспешно:

f(x) = 1+x
g(x) = 1-x
plot '+' using (x >= 0.75 && x < 1 ? 1 : 1/0 ):(f($1)):(g($1)) with filledcurves closed

1 Ответ

2 голосов
/ 23 апреля 2019

Команда, которую вы показываете, близка к работе.Измените его на

  plot '+' using (x >= 0.75 && x < 1 ? $1 : 1/0 ):(f($1)):(g($1)) with filledcurves

, отметив, что

  • фильтр (condition ? $1 : 1/0) не (condition ? 1 : 1/0)
  • не используйте ключевое слово closed
  • у вас должно быть разумное количество образцов в выбранном диапазоне.Один из способов получить это - set samples 1000, но см. Альтернативу ниже

Немного лучший метод мог бы использовать диапазон выборки, а не фильтр для x.

  f(x) = 1+x
  g(x) = 1-x
  set xrange [0:2]; set yrange [0:3]
  plot sample [x=0.75:1.0] '+' using ($1):(f($1)):(g($1)) with filledcurves

enter image description here

...