-не так Часто Задаваемые Вопросы- обновлено 2010/12/26
|
|
Часто задаваемые вопросы
|
О 2D Plot (No.3)Я хочу нарисовать несколько фигур на одном рисункеЕсть два способа создания рисунка, содержащего несколько фигур. Первый использует multiplot . Другой состоит в использовании формата EPS, тогда файлы в этом формате соберутся TeX или другими инструментами рисования. Здесь объясним команду multiplot . Командой set multiplot входите в режим multi-plot, командная строка Gnuplot обращается в multiplot> . В этом моде новая фигура накладывается на старую. Следующий пример показывает накладывание трех функций: y=x, y=x*x и y=x*x*x. gnuplot> set multiplot multiplot> plot x multiplot> plot x*x multiplot> plot x*x*x multiplot> set nomultiplot Gnuplot определяет диапазон, деления и размер фигуры для каждого построения, что приводит к неразберихе. Попытаемся зафиксировать X и диапазон Y [-10:10] и сотрем легенду командой no key , т.к.она накладываются. gnuplot> set xrange [-10:10] gnuplot> set yrange [-10:10] gnuplot> set nokey gnuplot> set multiplot multiplot> plot x multiplot> plot x*x multiplot> plot x*x*x multiplot> set nomultiplot Это гораздо лучше. Но так можно сделать и обычными процедурами построения. Команда multiplot позволяет нарисовать несколько фигур на одной, перемещая исходную точку каждой фигуры. Для этого используют команды set size и set origin. Пример использования multiplot. 4 фигуры Лиссажу строятся в одном рисунке. Фигура Лиссажу задается параметрическим изображением двух функций: x=sin(n*t) и y=sin(m*t). Рассматриваем случай n=3,5 и m=2,4. gnuplot> set parametric dummy variable is t for curves, u/v for surfaces gnuplot> set noxtic gnuplot> set noytic gnuplot> set nokey gnuplot> set size square 0.3,0.3 gnuplot> set rmargin 0 gnuplot> set lmargin 0 gnuplot> set tmargin 0 gnuplot> set bmargin 0 gnuplot> set multiplot multiplot> set origin 0.1,0.1 multiplot> plot sin(3*t),cos(2*t) multiplot> set origin 0.1,0.5 multiplot> plot sin(3*t),cos(4*t) multiplot> set origin 0.5,0.1 multiplot> plot sin(5*t),cos(2*t) multiplot> set origin 0.5,0.5 multiplot> plot sin(5*t),cos(4*t) multiplot> set nomultiplot Чтобы сделать фигуры одно размера, деления стираются с помощью noxtic и noytic , и четыре грани задаются нулевыми. Обычно трудно регулировать позицию каждой фигуры. Это не легкий способ определения значений точки origin, и придется поработать методом "проб и ошибок". Когда фигура имеет деления и подписи, размер так же зависит от них. В этом случае корректировка позиций становиться очень строгой. Я хочу нарисовать координатную сетку на дополнительных деленияхКоманда set grid создает сетку на главных позициях делений. Для того чтобы создать их на дополнительных делениях: gnuplot> set mxtics 5 gnuplot> set mytics 5 gnuplot> set grid xtics ytics mxtics mytics Это дает пять координатных сеток на дополнительных делениях между главными. Можно конкретизировать позицию сетки опциями xtics ... mytics команды set grid. Если использовать set grid noxtics noytics mxtics mytics, координатные сетки появяться только на дополнительных делениях (но я не думаю, что кому-то понравиться такой график, хотя...) |