tag:blogger.com,1999:blog-30744165.post3259368041561407127..comments2024-02-16T18:41:32.376+11:00Comments on Записки дебианщика: Построение графиков в gnuplot: двухмерные графикиvirenshttp://www.blogger.com/profile/12420257446841864325noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-30744165.post-65120616089270384792011-09-11T20:38:00.840+10:002011-09-11T20:38:00.840+10:00Катерина: «Насчет logscale-гнуплот умеет это делат...<i>Катерина: «Насчет logscale-гнуплот умеет это делать только для положительной части оси,а мне нужно ее всю сделать в логарифмическом масштабе,т.е. чтобы на оси ординат откладывались lg(y) при y>0 и -lg(-y) при y<0.»</i><br /><br />Катерина, вещественный логарифм определён только для положительных аргументов. Он отображает положительную полуось на всё множество вещественных чисел. Если параметр не строго положителен, то логарифмический масштаб оси ему не подходит. Не подходит логарифмический масштаб и для параметров, которые могут принимать нулевые значения — в нуле логарифм тоже не определён.<br /><br />А то, что хотите сделать вы, не является взаимно-однозначным отображением и поэтому не является стандартным масштабом для осей.<br /><br />Впрочем, в гнуплоте можно построить график функции, которую вы описали. Предполагая, что исходная функция, например x**3, ваш график будет строится вот такой командой:<br /><br />plot sgn(x**3)*log(abs(x**3)) with lines<br /><br />Однако в нуле эта функция всё равно не определена.Sergeyhttps://www.blogger.com/profile/00441172787160329883noreply@blogger.comtag:blogger.com,1999:blog-30744165.post-48628936671752273512011-09-11T05:11:56.297+10:002011-09-11T05:11:56.297+10:00Насчет logscale-гнуплот умеет это делать только дл...Насчет logscale-гнуплот умеет это делать только для положительной части оси,а мне нужно ее всю сделать в логарифмическом масштабе,т.е. чтобы на оси ординат откладывались lg(y) при y>0 и -lg(-y) при y<0. Просто брать отрицательные данные со знаком минус - "plot data.dat using 1:(-$2)" и потом сделать set yrange reverse не получится,т.к. рисуется сложная картина,вместе с различными обьектами,данные берутся из многих файлов. Может кто-то сталкивался с таким,подскажите как это сделать?Катеринаnoreply@blogger.comtag:blogger.com,1999:blog-30744165.post-88246297972332388482011-08-23T20:19:22.631+10:002011-08-23T20:19:22.631+10:00как можно поставить точки в конкретных (x,y) корди...как можно поставить точки в конкретных (x,y) кординатахAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-30744165.post-14480400466051739852011-07-24T01:05:15.759+10:002011-07-24T01:05:15.759+10:00# RAZRYV OSI
reset
unset key
bm = 0.15
lm = 0.12
r...# RAZRYV OSI<br />reset<br />unset key<br />bm = 0.15<br />lm = 0.12<br />rm = 0.95<br />gap = 0.03<br />size = 0.75<br />y1 = 0.0; y2 = 11.5; y3 = 58.5; y4 = 64.0<br />#kk = 0.7 #relative height of bottom plot<br /># or to keep proportional scale<br /> kk = (abs(y2-y1) / (abs(y2-y1) + abs(y4-y3) ) )<br /><br />set multiplot<br />set xlabel 'Time [ns]'<br />set border 1+2+8<br />set xtics nomirror<br />set ytics nomirror<br />set lmargin at screen lm<br />set rmargin at screen rm<br />set bmargin at screen bm<br />set tmargin at screen bm + size * kk<br /><br />set yrange [y1:y2]<br />plot [0:40] 20.0*atan(x-20.0) + 32 + sin(x)<br /><br />unset xtics<br />unset xlabel<br />set border 2+4+8<br />set bmargin at screen bm + size * kk + gap<br />set tmargin at screen bm + size + gap<br />set yrange [y3:y4]<br /><br />set label 'Power [mW]' at screen 0.03, bm + 0.5 * (size + gap) offset 0,-strlen("Power [mW]")/4.0 rotate by 90<br /><br />set arrow from screen lm - gap / 4.0, bm + size * kk - gap / 4.0 to screen \<br />lm + gap / 4.0, bm + size * kk + gap / 4.0 nohead<br /><br />set arrow from screen lm - gap / 4.0, bm + size * kk - gap / 4.0 + gap to screen \<br />lm + gap / 4.0, bm + size * kk + gap / 4.0 + gap nohead<br />set arrow from screen rm - gap / 4.0, bm + size *kk - gap / 4.0 to screen \<br />rm + gap / 4.0, bm + size * kk + gap / 4.0 nohead<br /><br />set arrow from screen rm - gap / 4.0, bm + size * kk - gap / 4.0 + gap to screen \<br />rm + gap / 4.0, bm + size * kk + gap / 4.0 + gap nohead<br /><br />plot [0:40] 20.0*atan(x-20.0) + 32 + sin(x)<br /><br />unset multiplotDenishttps://www.blogger.com/profile/17846438969363444092noreply@blogger.comtag:blogger.com,1999:blog-30744165.post-42104701541289725412009-03-20T03:54:00.000+11:002009-03-20T03:54:00.000+11:00а-яй-яй. Копируете статью - поставьте ссылку на ор...а-яй-яй. Копируете статью - поставьте ссылку на оригинал! = http://t16web.lanl.gov/Kawano/gnuplotAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-30744165.post-26653290990329733912008-12-22T05:10:00.000+11:002008-12-22T05:10:00.000+11:00Для построения графиков кроме общеизвестного gnupl...Для построения графиков кроме общеизвестного gnuplot в Линуксе есть куда менее известная, но ничуть не менее могучая программа Grace. Вопреки первому впечатлению после запуска, в ней таки ЕСТЬ<BR/> командный язык, а не только "мышиный интерфейс".<BR/>И может она очень многое - в дебиановском пакете <BR/>с ней вместе лежит ряд наглядных примеров в виде<BR/>программ на встроенном языке.<BR/>Сам я стал пользоваться Grace тогда, когда потребовалось сделать динамически меняющуюся визуализацию поступающих в компьютер данных - программа оказалась способна делать это несколько более интеллигентно чем gnuplot.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-30744165.post-39095479062268461892008-02-29T20:43:00.000+11:002008-02-29T20:43:00.000+11:002 jetxee пишет...я бы не называл это «двумерными» ...2 jetxee пишет...<BR/><B>я бы не называл это «двумерными» графиками. Если так, то что тогда такое «одномерные» графики?</B><BR/>А как же тогда это называть? <BR/><BR/><B> Поставил ссылки на твои статьи</B><BR/>Спасибо!<BR/><BR/>2 Анонимный пишет...<BR/><B> Особенно понравилось совмещение логирифмического и линейного масштабов.</B><BR/>В общем, это довольно экзотический пример, но оказывается, что и ему можно найти применение.<BR/><BR/><B>А может быть Вы знаете как правильно построить график с разрывами по оси абсцисс?</B><BR/>Надо смотреть конкретно, а у меня со временем очень туго.virenshttps://www.blogger.com/profile/12420257446841864325noreply@blogger.comtag:blogger.com,1999:blog-30744165.post-76482363192201754572008-02-29T02:55:00.000+11:002008-02-29T02:55:00.000+11:00Отличная информация! Особенно понравилось совмещен...Отличная информация! Особенно понравилось совмещение логирифмического и линейного масштабов. <BR/>А может быть Вы знаете как правильно построить график с разрывами по оси абсцисс? Дело в том, что мне нужно строить рентгенограммы. Снимались они широком интервале по углу, однако, интересны только несколько узких участков с пиками. Простой опции разрыва оси не нашел в документации. Можно, конечно, строить мультиплоты, как в примере с разными масштабами, однако придется вручную подбирать ориджины, сложновато будет.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-30744165.post-39817305441347410042008-02-28T23:02:00.000+11:002008-02-28T23:02:00.000+11:00Всё хорошо, отличный пост. Только я бы не называл ...Всё хорошо, отличный пост. Только я бы не называл это «двумерными» графиками. Если так, то что тогда такое «одномерные» графики?<BR/><BR/>В общем, я сторонник классифицировать средства визуализации по размерности данных (функция заданная на 1D-множестве — одномерный график, на двумерном — двумерный).<BR/><BR/>Поставил ссылки на твои статьи в заметке <A HREF="http://sovety.blogspot.com/2008/02/gnuplot.html" REL="nofollow">Строим графики: графический интерфейс для gnuplot</A>.jetxeehttps://www.blogger.com/profile/13602261362032769022noreply@blogger.com