Во-первых, обсуждение того, для чего предназначены samples
и isosamples
. Это лучше всего при просмотре фактического графика, а не контурной карты.
samples
используется для установки количества оценок функции по оси в отображаемом диапазоне. Для splot
(трехмерных изображений) вы можете управлять выборками в обоих независимых направлениях x и y. Вот пример, в котором направление x имеет только 4 оценки, а направление y — 200:
reset
set xrange [-10:10]
set yrange [-10:10]
set xlabel 'X'
set ylabel 'Y'
set samples 4,200
splot x**2+y**2
На следующих двух изображениях обратите внимание, что в направлении x функция оценивается только 4 раза, и между ними проводятся прямые линии. В направлении Y он оценивается 200 раз и выглядит как «гладкие» кривые. Обратите внимание, что в обоих направлениях рисуется ровно 10 линий. Я доберусь до этого ниже, обсуждая изолинии.
Глядя на ось X:
Глядя на ось Y:
Таким образом, рисуется 10 линий в каждом направлении оси, потому что значение по умолчанию для изолиний в обоих направлениях x и y равно 10. Мы можем изменить это по желанию. Давайте увеличим выборки в обоих направлениях для красивых плавных кривых, но продемонстрируем изовыборки.
reset
set xrange [-10:10]
set yrange [-10:10]
set xlabel 'X'
set ylabel 'Y'
set samples 200,200
set isosamples 4,12
splot x**2+y**2
Обратите внимание на красивые плавные изгибы в обоих направлениях. По оси x имеется только 4 точки, где по оси y рисуются поверхностные кривые, а по оси y имеется 12 точек, где поверхностные кривые рисуются параллельно оси x.
Приведенные выше примеры демонстрируют основное назначение set samples
и set isosamples
. Они лишь косвенно влияют на контуры. В вашем случае вас интересует только контурная карта, даже не отображая график поверхности. Ключ к тому, как gnuplot рисует контуры, заключается в его объяснении того, как можно рисовать контуры с помощью дискретных данных.
Громаки:
Чтобы рисовать контуры, данные должны быть организованы как «данные сетки». В таком файле перечислены все точки одной изолинии y, затем все точки следующей изолинии y и так далее. Одна пустая строка (строка, не содержащая символов, кроме пробелов и возврата каретки и/или перевода строки) отделяет одну изолинию y от следующей.
Судя по этому объяснению, gnuplot предпочитает выбирать значение x и рисовать изолинию y. Мы можем сделать вывод, что когда gnuplot рисует контуры из функций, он выбирает значения x и рисует изолинии y. Следовательно, при наличии множества отсчетов x и множества изолиний y рисуются контуры с высоким разрешением, в то время как отсчеты y и изолинии x не имеют значения (если вы не рисуете поверхность).
person
Dan Sp.
schedule
13.07.2018