Как заполнить участок между двумя кривыми внутри определенного диапазона?

#gnuplot

#gnuplot

Вопрос:

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

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

Ответ №1:

Показанная вами команда близка к работе. Измените его, чтобы быть

   plot ' ' using (x >= 0.75 amp;amp; 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
  

введите описание изображения здесь