- не так Часто Задаваемые Вопросы - обновлено 2010/12/26
|
|
FAQ |
О деленияхКак можно изменить внешний вид делений на каждой оси ?Существует два вида делений - основные и второстепенные. Числа обозначаются только под основными делениями на осях. По умолчанию второстепенные делений не отображаются, за исключением логарифмической шкалы. set {x|y}tics команда для изменения основных делений. gnuplot> set xtics 2 gnuplot> set ytics 0,200 gnuplot> plot x**3 Приращение показывается только для оси X, при этому значения под делениями могут становится -10, -8, ... +10. Для оси Y начальные значения и приращение заданы сразу. Gnuplot устанавливает значения под делениями: 0, 200, 400... В этом случае нет деления на оси Y, значение которой отрицательно. Вы также можете установиться последнее значение на ваше усмотрение командой: set ytics 0,200,600. Второстепенные деления могут быть изменены с помощью команды set m{x|y}tics. Интервал между каждым основным делением поделены на это значение. Следующий пример показывает, как нарисовать промежуточные деления. gnuplot> set mxtics 2 gnuplot> set mytics 2 Существует возможность произвольного расположения текста под делениями независимо от чисел. Вы можете написать "April", "May", "June" и "July" под X=1,2,3 и 4 следующим образом. gnuplot> set xtics ("April" 1, "May" 2, "June" 3, "July" 4) gnuplot> plot "test.dat" using 1:2:3 notitle with boxes,\ "test.dat" using 1:2 notitle with lines Как мы видим второстепенные деления не изменяются, когда к основным применены такие команды. Команда set ticscale n m меняет размер делений. Величина основных делений умножается на значение n, пока величина второстепенных делений умножается на значение m. Если m не указан, то второстепенные делений будут вполовину меньше основных. Если задать set ticscale 1 1, то все деления будут одинакового размера. Обычно деления обращены внутрь, чтобы нарисовать их, обращёнными наружу, используйте set tics out. Я хочу использовать вместо десятичных делений экспоненциальные как в логарифмической шкале.По умолчанию формат обозначения подписей под под делениями "%g". В логарифмической шкале подписи отображаются в формате "F", например 0.01, 1000 и так далее, если диапозон больше 0.0001 и меньше 100000. Если числа не входят в этот диапозон, то формат изменится на "E", в котором числа отображаются как 1e-05, 1e+06 и т.д. Чтобы выразить числа с основанием 10, нужно изменить формат на "10^{%L}" командой set format. "%L" позволяет отображать степени чисел по основанию 10. Терминал X window не отображает верхние индексы, поэтому нужно использовать терминал postscript. gnuplot> set format y "10^{%L}" gnuplot> set terminal postscript eps enhanced gnuplot> set ylabel "Y-AXIS" 2,0Когда установлен данный формат, расстояние между осью Y и её подписями становится шире. Вы можете установить смещение опцией команды set ylabel. В этом случае подпись оси Y будет перемещена в право на 2 единицы. Как изменить формат чисел ?Формат подписей под делениями может быть изменён командой set format. Синтаксис команды следующий: set format + имя оси (X, Y, Z, XY, X2, Y2) + формат строки. Эта строка схожа с форматом строки на языке С. В следующем примере говорится о том, как gnuplot отображает подписи делений из 10 символов с тремя цифрами после запятой. gnuplot> set format x "%10.3f" Синтаксис для цифр: "%" + (количество символов).(число знаков после запятой). Число с плавающей точкой 6.2 показывает, что количество символов 6, а после запятой 2 знака, потому будет отображено "5.00". Можно не указывать количество символов или число знаков после запятой, например, 6 или .2 Формат отображения выражается одной буквой -- 'f', 'e', 'E', 'g', 'x', 'X', 'o', 't', 'l', 's', 'T', 'L', 'S', 'c' и 'P'. По умолчанию установлено "%g". Когда подписи делений могут быть отображены с указанными количеством символов и числом знаков после запятой, то они будут переведены в формат "%.0f", в противном случае будет использован формат "%e". Следующая таблица показывает различия между форматами 'f', 'e', 'x' и 'o'. Форматы 'e' и 'E' похожи, кроме того как отображается текст 'e' или 'E'. Формат "%O", почему-то не работает (баг?)
Форматы 't', 'l', 'T' и 'L' служат для построения по логарифмической шкале. Давайте построим функцию y=exp(-x)+exp(x) в диапозоне X [-10:10]. Сначала функция будет показана не по логарифмической шкале. Чтобы сравнить эти форматы, отобразим подписи делений во всех 3х форматах сразу. gnuplot> set format y "%T %t %g" gnuplot> plot exp(-x)+exp(x) Вы можете указать разные форматы и отобразить их одновременно, как в этом примере, где указаны 3 числа в одной строке по оси Y. Первое в формате "%T", второе - "%t" и третье - "%g". Видно, что "%t" отображает дробную часть чисел по основанию 10 и "%T" отображает степень чисел по основанию 10. Поэтому числа в формате "%g" - это A x 10^B, где A взято из "%t", а B из "%T". Теперь построим график в логарифмической шкале: gnuplot> set logscale y gnuplot> replot Числа представленные в формате "%t" стали единицами, а "%T" - логарифмические значения по оси Y. Поэтому set format "%T" отображает степень чисел по основанию 10 по оси Y. Если терминал позволяет отобразить верхние индексы, как терминал Postscript, формат "10^{%T}" даст экспоненциальные выражения. Обычно 't' и 'l', 'T' и 'L' дают одинаковые результаты в обычной логарифмической шкале. Форматы 't' и 'T' отображают десятичную часть и степень чисел по основанию 10, а 'l' и 'L' отображают лююое основание, которое может быть задано командой set logscale axis base. Вы можете использовать различные символы и текст в подписях под делениями. Например, если указать: set format x "%g km" , то вы получите значения в формате 'g' и единицы измерения "km". Как убрать числа ?Примените команду: gnuplot> set format x "" Я хочу сделать промежуточные значения в логарифмических делениях. from Chriss in Univ. Tuebingen. Thanks !
Обычно логарифмические деления появляются, когда есть степени чисел 10,(1,10,100...). Иногда проще понять график, если используются соответствующие деления, и расстояние между ними не очень большое. Gnuplot прописывает значения только под основными делениями, заданными командой set {x|y}tic, поэтому, нужно определить, где вы хотите подписать значения. gnuplot> set logscale y gnuplot> set yrange [1:50] gnuplot> set ytics (1,2,5,10,20,50) gnuplot> set format y "%2.0t{/Symbol \327}10^{%L}" gnuplot> set lmargin 8 gnuplot> set terminal postscript eps enhanced gnuplot> plot exp(x)/x Символ Postscript, заданный в команде set format, обозначает точку, расположенную между символами немного выше линии строки. Чтобы изменить её на "крестик", замените в той строке: {/Symbol \264}. Описанный здесь способ не работает на некоторых ОС. Например, когда к числу 50.0 применены форматы "%t" и "%L", одни системы дают значения 5.0 и 1 (то есть 50.0 = 5.0E+01) и это верное отображение. Но другие системы дают значения 0.5 и 2 (50.0 = 0.5E+02). В этом случае значения для графика по осям принимают вид 0x10^2. (ноль логарифма ???) |