¦a¹Ï/²Îp¹Ï/3d ¨ç¼Æ¹Ï/¹êÅç³ø§i¹Ï -- Gnuplot ¯Âµe¹Ï
* * * ¤]½Ð°Ñ¦Ò ±Ð¾Çµu¤ù * * *
²¤¶
GNUPLOT
¬O¤@®M¸ó¥»Oªº¼Æ¾Çø¹Ï¦Û¥Ñ³nÅé, ¥i¥Hø»s¼Æ¾Ç¨ç¼Æ¹Ï§Î,
¤]¥i¥H±q¯Â¤å¦rÀÉŪ¤J¤j¶q¼Æ¾Ú (¨Ò¦p®y¼Ð¸ê®Æ), ø»s²Îp¹Ïªíµ¥µ¥¡C
¥¦¤£¬O²Îp³nÅé, ¤]¤£¬O¼Æ¾Ç³nÅé, ¥¦¯Âºé¥u¬O¤@®M¨ç¼Æ/¸ê®ÆÃ¸¹Ï³nÅé¡C
¥¦¥u±M¤ß°µ¤@¥ó¨Æ - µe¹Ï - ¦ý¬O§â³o¥ó¨Æ°µ±o«D±`§¹¾ã¡C ³Ì«nªº¬O,
¥¦»P¨ä¥L³nÅé«O«ù¨}¦nªº·¾³q: ¥i¥H²£¥Í png, svg, ps, hpgl,
... µ¥µ¥¶}©ñªº¹Ï§ÎÀɮ׮榡ªº¿é¥X, ¨Ñ¤å®Ñ³B²z/²³ø/¸Õºâªí/...
µ¥µ¥³nÅé¶×¤J¡C ¦pªG¦A¾Ç¤@ÂI regular
expression, §ó¥i¥H±N¥ô¦ó¦³³W«ßªº¤å¦r®y¼ÐÀÉÂà´«¦¨ gnuplot
»{±oªºÂ²³æ®æ¦¡, º¡¨¬§A¥ô¦ó¸ê®ÆÃ¸¹Ïªº»Ý¨D¡C ³oºØ ¡u²Õ¦X¦¡¾Ç²ß¡v
ªº³]p, ¦b¥[¤W¥¦¾ú¤[¤£°Iªº¯S©Ê, ¨Ï¥¦¨ã¦³ ªø»·¾Ç²ß§ë¸ê»ùÈ,
¤j¤O±ÀÂ˵¹©Ò¦³²z¤u¬ì¨tªº¦P¾Ç,
¤Î¨ä¥L¥ô¦ó¬ì¨t»Ýn°µ²Îpø¹Ïªº¦P¾Ç¡C
Windows ¥Î¤á, ¤U¸ü ®É½Ðª`·N: ¦pªG±zªº¨t²Î¤w¦³ cygwin ©Î XLiveCD, «h¤U¸ü gp400win32x11.zip ; ¤@¯ë¤HÀ³¸Ó¨S¦³ cygwin/XLiveCD, ¦]¦¹À³¤U¸ü gp400win32.zip¡C
¥t¥~, §ÚÁÙÀ°¥¦¼g¤F¤@Ó GUI ±±¨î«eºÝ dynagpt-0.4, «D±`¾A¦X°ê¤¤¨ì¤j¾Çµ{«×ªº¸ÑªR´X¦ó±Ð¾Ç, ¥i±¤ÁÙ¨S¦³®É¶¡¼g¤â¥U¡C
²{¦b´NÅý§Ú̪½±µ¦b©R¥O¦C¥´ gnuplot
¶i¤J¥¦ªº©R¥O¦CÀô¹Ò¡C
plot x*x-4*x+3 |
# µe¤@±ø©ßª«½u¡C ª`·N¥¦ªº¹ïºÙ¶b¦b x=2¡C |
a=-1; b=-2; c=3 |
# ³]©w¤@¨ÇÅܼơC |
plot a*x*x+b*x+c |
# µe¤@±ø¶}¤f¦V¤Uªº©ßª«½u¡C ª`·N¥¦ªº¹ïºÙ¶b¦b x=-1¡C |
b=6; replot |
# ²Ä¤T±ø©ßª«½u¡C ¥¦ªº¹ïºÙ¶b«h¬O¦b x=3¡C |
show xzeroaxis |
# ¥Ø«eªº³]©w, ¨Ã¤£·|Åã¥Ü x ¶b¡C |
set xzeroaxis |
# ¨º»ò±N³oÓ³]©w¥´¶}§a¡C |
replot |
# «µe¤@¦¸, ¥i¥H¬Ý¨ì¥¦»P x ¶b¦³¨âÓ¥æÂI¡C |
¦pªG§A¤U¥H¤Wµe¹Ïªº©R¥O, «o¦³¿ù»~°T®§: use 'set term' to set
terminal type first ¨º»òÀ³¥ý³]©wø¹Ï¼Ò¦¡¡C ¦b X-Window ¤U¥i¥H³]©w:
set term x11 ¦Ó¦b MS Windows ¤U¥i¥H³]©w: set
term windows ¦pªG«ç»ò¸Õ³£¥¢±Ñ, ¦Ü¤Ö¥i¥H¤U: set term
dumb ®³¤å¦r¼Ò¦¡¤Uªº¦r¤¸¨Óµe¹Ï, ÁöµM¦³ÂIÁà, ¦Ü¤Ö¥i¥H½m²ß.
(¦pªG§A³z¹L pietty ³s¨ì Linux ¥D¾÷, ´N¥²¶·³o¼Ë³]¡C) 
½Ð¦Û¤vµeµe¬Ý:
- x*x-2*x+3 »P x ¶b¦³´XÓ¥æÂI?
- µe¤@±ø»P x ¶b¬Û¤Áªº©ßª«½u§a¡C
·íµM, ¾Ç¥ô¦ó¤@®M³nÅé, ³Ì¥ýn¾Çªº´N¬O:
- ¦p¦óÂ÷¶}?
exit©Îquit©Îª½±µ«ö^D - ¦p¦ó¨D§U? ¨Ò¦p·Q¾Ç replot ªº¸Ô²Ó¥Îªk, ¥i¥H¤U:
help replot·íµM¹³ set ©Î plot ³oºØ½ÆÂøªº«ü¥O, ¶i¤Jhelp set©Îhelp plot¤§«á, ÁÙ¦³¤l¿ï³æ¡C
¥t¥~, ©R¥O¦Cªº§Ö³tÁä¤]«Üȱo¾Ç¡C gnuplot ¥Îªº¨Ã¤£¬O¯u¥¿ªº
readline ¤¶±,
¥u´£¨Ñ¨ä¤¤¤Ö¼Æ´Xӳ̱`¥Î¥\¯à, ¦ý¤w¸g«Ü¤è«K¡C ¸Ô¨£ help
line-editing¡C
¤H¤f¦¨ªø¥v
½Ð¥ý¸õ¥X gnuplot, ¦A«·s¶i¨Ó¤@¦¸, ¥H½T©w©Ò¦³³]©wÁÙì¡C (©Ò¦³ set ¦^´_¨ì default È) ³o¥÷¸ê®Æ popgrowth.txt °O¸üµÛ¬ü°ê¥[¦{»Pªü©Ô´µ¥[¦{ªº¤H¤f¦¨ªø¥v¡C
plot "popgrowth.txt" |
# ø»s¥[¦{¤H¤f¦¨ªø¥v¡C |
show style data |
# ¦pªG§A¥Îªºª©¥»¤ñ¸ûÂÂ, ½Ð¤U set data style |
set style data lines |
# ³]©w¦¨³s½u¼Ò¦¡¡C |
set grid |
# ¼ÒÀÀ¤è®æ¯È®ÄªG¡C |
set title "population growth" |
# ¥[¤W¼ÐÃD¡C |
replot |
# «µe¤@¹M, ¦n¦h¤F¡C |
plot "popgrowth.txt" using 1:3 |
# §ïø»sªü©Ô´µ¥[¦{¤H¤f¦¨ªø¥v¡C |
show ytics |
# ¬Ý¬Ý y ¶b¼Ð¥Ü¡C |
set ytics 100000 |
# ±N y ¶b¼Ð¥Ü§ï³]©w¦¨¨C 10 ¸U¤@®æ¡C |
show ytics |
# ¦A¬Ý¤@¦¸ y ¶b¼Ð¥Ü¡C (¥H¤U¤£¦AÅo¶Û) |
replot |
# «µe¤@¹M¡C |
plot "popgrowth.txt" |
# ¦^ÀY¬Ý¥[¦{¤H¤f¦¨ªø¥v... «ç»ò·|³o¼Ë? |
set ytics autofreq |
# ÁÙ¬OÅý¥¦¦Û°Ê³] y ¶b¼Ð¥Ü§a¡C |
plot "popgrowth.txt" using 1:2, |
# ¦P®Éµe¨â¹Ï (½Ð¥´¦b¦P¤@¦C) |
set logscale y; replot |
# ¹³³oºØ±¡ªp, ¥Î logscale µe¹Ï³Ì¦X¾A¤F |
set output "growth.png" ; set term png ;
replot |
|
set output ; set term x11 ;
replot |
|
«Ü¦h³]©w¥i¥H¥Î
set ©R¥O§ó§ï¡C «ØÄ³¥Î¹ïÀ³ªº show
©R¥O¬d¬Ý¤@¤U§ó§ï«e«áªº³]©w¡C ³o¸Ìªº set term ...
¥Î¨Ó¿ï¨ú¤£¦Pªº¿é¥X¤è¦¡ (¿Ã¹õ©Î¹ÏÀÉ? ¨º¤@ºØ¹ÏÀÉ?) set output
... «h¿ï¨ú¿é¥XªºÀɮצWºÙ¡C ˼ƲĤG¦Cªº¨º¤T¥y¥Î¨Ó±N¹Ï¦sÀÉ;
³Ì«á¤@¦Cªº¨º¤T¥y±N¿é¥X¤Á¦^¿Ã¹õ, ¥H§Kµ¥¤@¤U©Òµeªº¹Ï¥þ³¡³£¶]¿ù¦a¤è,
Âл\±¼¥ý«eµe¦nªº¹ÏÀÉ¡C
¤S, ³oÓ¨Ò¤l»¡©ú¤F: ¦pªG¼Æ¾Ú¸ê®Æ¸Ì±§t¦³¼Æ¶q¯Å¬Û®t·¥¤jªºÈ (¨Ò¦pÂÅÄH, ¤H, ¦Ñ¹«ªº¨ªøÅé«) ¥i¥H¥Î logscale ªº³]©w¨Ó´£°ª¹Ïªº¥iŪ©Ê¡C
¥ßÅé¹Ï§Î
¥Î splot µeªÅ¶¡¦±±¡C ¥i¥H¥Î·Æ¹«§ìµÛ¹Ï§Î±ÛÂà, ¸Ô²Ó¬ã¨s¥¦ªºªø¬Û,
³o¤ñ¦Ñ®v¦b¶ÂªO¤Wµe¹Ïn¦nª±¦Ó¥B¦³·Pı¦h¤F! ¹³¬O³oÓ°¨¾b±:
splot x*x-y*y ¦A¥[¤Wµ¥°ª½u,
¥¿¦n¥i¥H¤W¤@ÂI°ê¤¤¦a²z/¦a¬ì: ![[°¨¾b±ªºµ¥°ª½u] ¹Ï®×](saddle-contour.jpg)
reset # ²M°£¤§«e©Ò¦³ªº³]©w
set contour base
set cntrparam levels 20
unset key
unset ztics
splot x*x-y*y
³o¸Ìªº reset ®ÄªG¹³¬O¸õ¥X gnuplot ¦A¶i¨Ó, §â¤§«eªº (µ´¤j³¡¤À) set ³]©w§ï¦^¤º©wÈ¡C
¦pªG§Æ±æ±Nµ¥°ª½uµe¦b¦±±¥»¨Ó¦bªÅ¶¡¤¤ªº¦ì¸m¤W, ¥i¥H¥Î: set
contour surface ¨ú¥N set contour base;
¦pªG¥u·Q±q¥¿¤W¤è¬Ýµ¥°ª½u, ¤£·Q¬Ýì©lªº¦±±, «h»Ýn¸É¨â¥y:
unset surface; set view 0,0 ©Î°®¯Ü¤£ã±ÛÂà: set
view map
¥t¤@ºØ§e²{¥ßÅé¹Ï§Îªº¤è¦¡¬O:
®Ú¾Ú¦±±¤W¨C¤@¤p¶ô¤T¨¤§Î¤£¦Pªº z È (¤£¦Pªº°ª«×),
¬°¥¦¶î¤W¤£¦PªºÃC¦â¡C ¨Ò¦p:
reset
set isosamples 40
set pm3d
set palette model HSV functions gray,1,1
unset ztics
splot x*x-y*y
·íµM, ¥¦¤£¥u¥i¥Hµe 3-d ¨ç¼Æ, ¤]¥i¥Hµe 3-d ¸ê®Æ¡C ¬ü°ê¤ÓªÅÁ`¸p JPL ¹êÅç«Çªº Shuttle Radar Topography Mission ´£¨Ñ¥þ²yªº¦a±°ª«×¸ê°T¡C §Ú¤U¸ü¥_½n 23 «×ªF¸g 121 «×ªþªñªº¸ê°T, ¨Ã¼g¤F¤@Ó¤pµ{¦¡ hgt2txt ±N¤§Âà´«¦¨ gnuplot »{±oªº¯Â¤å¦r®æ¦¡, ¦s¦¨ÀÉ®× taiwan.txt:
./hgt2txt -s 100 > taiwan.txt
µM«á¶i¤J gnuplot µe¹Ï:
reset
splot "taiwan.txt" # ³s½u·|¤ñ¸û²M·¡
set style data lines; replot # ¤ñ¨Ò©Ç©Çªº, ½Õ¤@¤U...
set xrange [0:60]
set zrange [0:1e4]; replot
set pm3d; replot # µÛ¦â¡C
set palette model HSV functions gray, 1, 1
replot # ´«Ó½Õ¦â½L¬Ý¬Ý
set palette model HSV functions gray>0.01?gray*0.9:0, gray>0.01?1:0, 1
replot # ®ü±µe¥Õ¦â; ³°¦a¥Ñ¬õ¨ìµµ
set view map; replot # ¦pªG§ïµe¥±¹Ï©O?
set palette model XYZ functions gray**0.35, gray**0.5, gray**0.8
splot "taiwan.txt" lt 3 # ¥t¥~¤@ӥѶ¨ìª÷ªº½Õ¦â½L
³Ì«á¤@Ó ¡u¶Âª÷½Õ¦â½L¡v (¨þ¨þ ¸ò»OÆWªº¬FªvµLÃö, ½Ð¤£n·Q¤Ó¦h) ¨Ó¦Û ³o¥÷Á¿¸q (¦b¥»¶·j´M "gold palette")

ª`·N¨ì¸ê®ÆÀÉ taiwan.txt ªº®æ¦¡:
- ¨C¦C¤@ӼƦr, ¥Nªí¤@ÂIªº z È¡C
- ¥ý¬O©Ò¦³ y=0 ªºÂI, ¹jµÛ¤@ӪŦC«á¬O©Ò¦³ y=0 ªºÂI, ¦A¹j¤@ӪŦC ...
- ¸ê°T¤£¨¬³B, ¥i¥H¶ñ nan, ¨º»ò gnuplot ´N·|¦Û°Ê¯d¥Õ¡C
¦pªG¦b³]©w data style lines ¤§«á, «µe, ¹Ï´NªG¶Ã±¼¤F,
¨º´Nªí¥Ü±zªºª©¥»ªº gnuplot ¤£¤ä´©³o¦U¥\¯à¡C ¨SÃö«Y,
¸É¤@¥y´N¥i¥H¸Ñ¨M:
set datafile missing "nan"¸Ô¨£ ¦³Ãö gnuplot ³B²z nan ªº°Q½×¡C
Regexp »P¸ê®ÆÃ¸¹Ï
¦pªG±z¹ï¸ê®ÆÃ¸¹Ï¦³¿³½ì, ³o¸Ì ÁÙ¦³§ó¦h¨Ò¤l; ¤£¹L»Ýn¾Ç¤@ÂI regular expressions¡C ²¤¹L³o³¡¤À, ¹ï gnuplot ªº¾Ç²ßµL¬Æ¼vÅT; ¦ý regular expressions ¯uªº¶W¯Å¦³¥Î, ¤£§«¶¶«K¤@°_¾Ç¡C
¥Ü½d¶°ÀA: ¥H¥@¬É¦a¹Ï¬°¨Ò
Demo scripts for
gnuplot ¦³«Ü¦h½d¨Ò¡C ¤]¥i¥H¤U¸ü¾ã®MªºÀ£ÁYÀÉ
(ª©¥»¥i¯à¤£¦P©ó¤Wzºô¶) demo.zip, ¸ÑÀ£ÁY«á,
¦b¸Ó¥Ø¿ý¤U¶i¤J gnuplot, ¤U«ü¥O: load "all.dem" ¡C
¦bì¥ý¤U«ü¥Oªº²×ºÝ¾÷µøµ¡ (¦Ó¤£¬Oø¹Ïµøµ¡) «ö Enter,
¥i¥H¤@¤f®ð³v¤@À˵ø©Ò¦³½d¨Ò¡C
§ÚÌ´N®³¨ä¤¤ªº cylindrical/spherical
coordinates ¬°¨Ò¨Ó¦h¾Ç¤@¨Ç¸ê®ÆÃ¸¹Ïªº«ü¥O¡C ¶}¥t¤@Ó¤À¶, ¥Î
less À˵ø world.dat ªº¤º®e; ¤S¦b gnuplot ¤À¶·í¤¤ reset; plot
"world.dat" ... («ÝÄò)
¶×¥X svg ¥H»s§@º©µe/®ü³ø/´¡¹Ïµ¥µ¥
¦V¶qø¹Ï³nÅé Inkscape ¥i¥H¥Î¨Ó»s§@º©µe/®ü³ø/´¡¹Ïµ¥µ¥, ¦³ Linux ª©, Mac ª©, Windows ª©, ...¡C ¥¦©Ò²£¥Íªº svg ÀÉ, ¬O¤@ºØ¶}©ñªº xml ®æ¦¡, ¥B¥i¥H¥ô·NÁY©ñ¦Ó¤£¥¢¯u¡C §Ú±`®³¥¦¨Ó¬°§Úªº³¡¸¨®æ¤å³¹µe¤@¨Ç´¡¹Ï, ¨Ò¦p ¤Ïµsª©¤å«Åªº¥¿·í©Ê, ¤¤¶¡¿ï¥Áªº¤O¶q, ¤½§ëªº¼Æ¾Ç bug, ... µ¥µ¥¡C
gnuplot ªº¿é¥X¥i¤£¥i¥H®³¨Óµ¹ inkscape ¥Î©O? ³o¸Ì´N¬O¤@Ó¨Ò¤l:
unset key
unset border
unset xtics
unset ytics
unset mouse
bell(x) = exp(-x*x)/sqrt(2*pi)
f1(x) = (x > -1 && x < 1) ? bell(x) : 0
plot [-3:3] bell(x) lt 1 with filledcurve, f1(x) lt 2 with filledcurve
set output "normal.svg"; set term svg; replot
set output; set term x11; replot
¶i inkscape, ¶×¤J normal.svg, ¿ï¨ú¹Ï§Î, ¨Ã¥Î Object ¿ï³æ©³¤Uªº ungroup ¥\¯à±N¸s²Õ©î¶}, ´N¥i±o¨ì±`ºA¤À§Gªº¦V¶q¹Ï¡C
¼Æ¾Ç¹Ï§Î
¥Î gnuplot µe¼Æ¾Ç¨ç¼Æ, ¨ä¹ê¤ñµe¸ê®ÆÀɧ󲳿¡C
§Ú̬ݹL¦p¦ó³æ¯Â¦a¥Hª½¨¤®y¼Ðªí¥Üªkµe¹Ï, ¹³³o¼Ë: plot
sin(x)/x; ¦ý gnuplot ÁÙ¥i¥Hµe·¥®y¼Ð¹Ï:
set polar # §ï¥H·¥®y¼Ðµe¹Ï
plot 1+cos(t) # ¤ßŦ½u
plot sin(5*t) # ¤Ã¤ªá
plot [0:6*pi] t # ªü°ò¦Ì¼wÁ³½u
unset polar # ¤Á´«¦^ª½¨¤®y¼Ð
¦³¨Ç¹Ï§ÎÄY®æ»¡¨Ó¤£¬O¨ç¼Æ, ¦]¬°¤@Ó x ¹ï¨ì¨âөΨâÓ¥H¤Wªº y;
¦ý¤S¤£¤@©w¯à¥Î«Ü²³æªº·¥®y¼Ðªí¥Ü¡C ³o®É¥i¥H§ï¥Î³Ì¤@¯ëªº "°Ñ¼Æ¦¡"
ªí¥Ü¡C ¥ý¥Î set parametric «ü©w¥H¤U¨Ï¥Î°Ñ¼Æ¦¡,
¥H«á´N¥i¥H¥Î t ·í°µ¦ÛÅܶq¡C ·íµM¥Î°Ñ¼Æ¦¡µe¹Ï®É, ´N¥²¶·µ¹ plot
¨âÓ¼ÆÈ, ¨Ò¦p plot [-3:3] t*t, t*t*t µe¥X¤@±ø¦³ cusp
(¦³¦y¨¤) ªº¦±½u¡C ¤S¦p plot sin(t),sin(t)*cos(t)
µe¤@±ø "8" ¦r½u¡C ²{¦b½Ð¥Î unset parametric ÁÙì¡C
ÁÙ°O±o·L¿n¤À¸Ì±ªº
"¤G¦¸·¥" »P
"¤G«·¥" ¶Ü? ¥k¹Ï¬O¤@Ó "¨âÓ¤G¦¸·¥¦s¦b¦ý¤£¬Ûµ¥ªº¨Ò¤l,
©Ò¥H¤G«·¥¤£¦s¦b, ¤]´N§ó¤£¥Î½Í¤G«³sÄò¤F¡C
(§ó¦h¨ç¼Æ¹ê¨Ò) ![[¤G¦¸·¥¦s¦b¦ý¤£¬Ûµ¥ªº¨Ò¤l] ¹Ï®×](limit.jpg)
f(x,y) =(x*x-y*y)/(x*x+y*y)
limx->0 limy->0 f(x,y) = 1
limy->0 limx->0 f(x,y) = -1
lim(x,y)->(0,0) f(x,y) = ?
set hidden3d
set isosamples 40
splot [-1:1] [-1:1] (x*x-y*y)/(x*x+y*y)
³o¸Ìªº set hidden3d ¥Øªº¬O®ø°£Áô½u,
¤]´N¬O¤£nµe¥X³Q¾B»\¦íªº³¡¤À, ¥H«K©ú½T¦a¤À¿ë¥X«e«á¡C µeªÅ¶¡¦±±®É,
³o¼Ëªº³]©w¬Ý°_¨Ó¤ñ¸û¯u¹ê, ¦ý¬Opºâ¶q¤]µy·L¤j¤@¨Ç¡C ¦Ü©ó set
isosamples 40 «h¬On gnuplot ¦b x ¤è¦V»P y ¤è¦V¦Uµe 40
±ø¦±½u¡C ¤@¯ë»¡¨Ó, ½u±ø¶V±K¶°, ¹Ï§Î´N¶Vº}«G, ¦ý¬Opºâ¶q¤]¶V¤j¡C
¦pªG·íªì¾Ç·L¿n¤Àªº®ÉÔ, ª¾¹D¦³ gnuplot ¥i¥Hª±,
´N·|§ó©ú¥Õ¤G¦¸·¥»P¤G«·¥ªº®t§O¤F!
µeªÅ¶¡¦±±®É, ¤@¼Ë¥i¥H¥Î°Ñ¼Æ¦¡; ¦¹®É¥Î u, v ·í°µ¦ÛÅܶq¡C ¨Ò¦p:
![[±q¤¤¶¡³QÕt¦íªº¯È] ¹Ï®×](pinched.jpg)
set parametric
set hidden3d
splot v*v, -u, v*(u*u+1)
splot ¦³¤ä´©¥Î²y±§¤¼Ð»P¬W±§¤¼Ðµe¥~³¡¼Æ¾Ú¸ê®Æ, ¦ý¨Ã¨S¦³ª½±µ¤ä´©²y±§¤¼Ð»P¬W±§¤¼Ðµe¨ç¼Æ¡C ¨SÃö«Y, °Ñ¼Æ¦¡¤ñ³o¨Ç®y¼Ð§ó¤@¯ë, ©Ò¥H¤@¼Ë¥i¥Hµe¥X¨Ó, ¨Ò¦p hyperboloid of one sheet ¤Î torus ("²¢²¢°é"):
set isosamples 30, 10
splot [-pi:pi] [-2:2] sqrt(1+v*v)*cos(u), sqrt(1+v*v)*sin(u), v
set isosamples 50, 30
splot [-pi:pi] [-pi:pi] cos(u)*(5+cos(v)), sin(u)*(5+cos(v)), sin(v)
¦Ûq¨ç¼Æ
¨Ï¥ÎªÌ¥i¥H¦Û¤v©w¸q¨ç¼Æ¡C ¨Ò¦p°T¸¹³B²z·í¤¤¸g±`¥X²{ªº sinc ¨ç¼Æ
¥i¥H³o¼Ë©w¸q: sinc(x) = sin(x)/(x)
¤§«á¦pªGnµe¥¦ªº¥ßÅ骩´N¤ñ¸û²³æ¤F: splot
sinc(sqrt(x*x+y*y)) ![[sinc ¨ç¼Æ, ¥ßÅ骩] ¹Ï®×](sinc.png)
¥i¥H¥Î show functions ¤Î show
variables ¬d¸ß¥ý«e©w¸qªº¨ç¼Æ¤ÎÅܼơC
Fitting
¨ä¹ê gnuplot ¤£¥u¥i¥Hø¹Ï, ¤]¥i¥H°µ¤@ÂI¼ÆÈ¹Bºâ¡C Fitting ªº¥\¯à«Ü¦n¥Î, fit §¹¦¨¤§«á, §â¦¨ªG¨ç¼Æ©Mì©l¸ê®Æµe¦b¤@°_, ¥i¥H«Ü²M·¡¦a¬Ý¨ì¤âÃ䪺¸ê®Æ»P¤ß¤¤ªº¼Ò«¬»P¬O§_§k¦X¡C
¥ý¬Ý¤@Ó²³æªº¨Ò¤l¡C º¥ý¶i¤J octave ¥Î¶Ã¼Æ²£¥Í¤@¨Ç¸ê®Æ:
x=[-10:10]/8*pi; x=x'
y=3.2*sin(0.7*x+0.4)+1.4*x-2.3+(rand(21,1)-0.5)*0.7
z = [x,y]
save -text fit-ex1.txt z # ¦sÀÉ
¦A¶i¤J gnuplot, ¥Î¤@Ó¤T¦¸¦¡¥hªñ¦ü:
f(x) = a*x*x*x + b*x*x + c*x + d # ©w¸q¨ç¼Æ (§t«Ý¦ô°Ñ¼Æ)
a=-1; b=1; c=10; d=0 # ³]©w°Ñ¼Æªºªì©l²q´úÈ
fit f(x) "fit-ex1.txt" via a,b,c,d # fit
plot "fit-ex1.txt", f(x) # µe¥X, ¹ï·Ó¤ñ¸û
¤£¹L³oÃD¥¿¦n¤]¥i¥H¥Î³Ì¤p¤è®t (least square) ªº¤è¦¡¨Ó¸Ñ¡C ¦^¨ì octave «Ü®e©ö´N¥i¥HÅçºâµª®×:
load "fit-ex1.txt"
x = z(:,1)
y = z(:,2)
A = [x.*x.*x,x.*x,x,x-x+1]
(A'*A)\(A'*y)
¤@¨Ç¦³¥Îªº¸gÅç¤À¨É
- Y§Æ±æµe¥Xªº¤å¦r¦³¤W¤U¼Ð¤p¦rªº®ÄªG, ¦b X Window ¤U¥i¥Î
set term x11 enh, µM«á¥Î³o¼Ëªº»yªkset xlabel '{/Symbol D}_x (m)'§Y¥i¹F¦¨¡C ½Ð°Ñ¦Ò GNUPLOT 4.0 - A Brief Manual and Tutorial ¨Ã¦b¶±¤º·j´M Greek¡C ·PÁ ¤p©ú´£¨Ñ!
¥H¤U¬OªºÁ¿¸q©|¥¼¾ã¦X¶i¨Óªº³¡¤À
×¹¢¹Ï®×: set »P show ªº±`¥Î¿ï¶µ
- ¶i¤J gnuplot «á½Ð¥ýµe¦n¤@Ó¹Ï, ¨Ò¦p
plot sin(x)/x¥H¤UºKn»¡©ú¤¤, (un)set xzeroaxis ªí¥Ü§A¥i¥H¤Uset noxzeroaxis; replot¬Ý¬Ý¤£nµe x ¶bªº®ÄªG, ©Î¤Uunset xzeroaxis; replot¬Ý¬Ýnµe x ¶bªº®ÄªG. ¦³¨Ç¿ï¶µ (¨Ò¦p arrow) ¤ñ "n/¤£n" ÁÙn½ÆÂø, ¥²¶·¬Ý¤â¥U (¨Ò¦p help set arrow) ¬d¬Ý¸Ô²Óªº¥Îªk. - nÀˬd¥Ø«eªº³]©w, ¥i¥H¥Î show ©R¥O. ¨Ò¦p
show xzeroaxis¥i¥H¬d¸ß¦b¥Ø«eªº³]©w¤U, x ¶b·|¤£·|µe¥X¨Ó; ¥Îshow xrange¥i¥H¬d¸ß¥Ø«e x ¶b¤è¦Vªº¼ÆÈ½d³ò. - set xrange ...: ³]©w x ¶b¤è¦Vªº¼ÆÈ½d³ò. y ¶b»P z ¶bÃþ¦ü. (¦³¨Ç©R¥O¥u¹ï x »P y ¦³®Ä, ¦³¨Ç¹ï z ¤]¦³®Ä; ¥H¤U³£¥u¥H x ¶b¬°¨Ò.)
- set title ...: ³o±i¹Ïªº¼ÐÃD.
- (un)set autoscale x: (¤£)nÅý gnuplot ¦Û¤v±ÀºV x ¶b¤è¦Vªº¼ÆÈ½d³ò (range)
- (un)set xzeroaxis: (¤£)nµe x ¶b.
- (un)set border: (¤£)nµe¥~®Ø.
- (un)set xtics ...: (¤£)nµe x ¶b¤Wªº¨è«×. ¨è«×¤§¶¡ªº¶ZÂ÷¥i¥H½Õ¾ã, ¬Æ¦Ü¥i¥H¤£¬O±`¼Æ; ¨è«×®Çªº¤å¦r¥i¥H¦Û¦æ«ü©w. ±ý³æ¿W±±¨î¨è«×®Çªº¤å¦r (®ø°£©Î§ïÅܦC¦L®æ¦¡) ¨£ help set format. ¤S, ¦pn¥H¤ë¥÷°µ¬°¨è«×®Çªº¤å¦r, ¥i¥H¥Î xmtics ¿ï¶µ.
- set function style ...: ¥Î¦UºØ¤£¦Pªº¤è¦¡¨Óµe¨ç¼Æ. «ØÄ³¥Î impulses ¸Õ¤@¤U, ¥i¥Hµe¥Xª«²z½Ò¥»¤W±`¥X²{ªº¹Ï¦¡; ¥Î boxes ¸Õ¤@¤U, ¥i¥Hµe¥X²Îp½Ò¥»¤W±`¥X²{ªº¹Ï¦¡.
- set samples ...: ¨C¤@±ø¦±½un¥Ñ¦h¤ÖÓÂI¨Óªñ¦ü (¨ú¼ËÂI¼Æ).
- (un)set grid: (¤£)n¦bI´º¤Wµe¤è®æ¯È.
- (un)set key ...: (¤£)n¦b¥k¤W¨¤Åã¥Ü¹Ï¨Ò (¦]¬°¤@±i¹Ï¤W¥i¥H¦³¦n´XÓ¨ç¼Æ) ¥t¥~ keytitle ¥i³]©w¹Ï¨Òªº¼ÐÃD.
- set label ...: ¨ì³B¶Ã¼g¤å¦r.
- set arrow ...: ¨ì³B¶Ãµe½bÀY.
- (un)set logscale ...: ¥H¹ï¼Æ¤ñ¨ÒÅã¥Ü.
- Gnuplot «D±`«nªº¥Î³~¤§¤@¬O¸ê®Æ¤ÀªR:
§â·j¶°¦Ó¨Ó©Î¨ä¥Lµ{¦¡©Ò²£¥Íªº¼Æ¾Ú¸ê®Æ®³¨Óµe.
¥¦»Ýnªº¿é¤J®æ¦¡«D±`²³æ: ¯Â¤å¦rÀÉ; ¨C¦C¥Nªí¤@ÓÂIªº§¤¼Ð; #
¶}ÀYªº·í°µµù¸Ñ©¿²¤; ¦pªG¨C¦C¦³¨âӼƦr«h¥Nªí x »P y §¤¼Ð;
¦pªG¨C¦C¥u¦³¤@ӼƦr«h¥Nªí y §¤¼Ð (x §¤¼Ð¦Û°Ê«ü©w¬° 1, 2, 3,
...). ¨Ò¦p§ÚÌ¥i¥H«Ø¥ß¤@Ó¼Æ¾Ú¸ê®ÆÀÉ¥s°µ apache.dat µM«á¤U
plot "apache.dat" - »P set function style ¬Û¹ïÀ³ªº, ¦³¤@Ó set style data ¥i¥H¥Î¦UºØ¤£¦Pªº¤è¦¡¨Óµe¥~³¡¼Æ¾Ú¸ê®Æ.
- ¦pªG data style ³]©w¦¨ lines ©Î linespoints, «h¸ê®ÆÂI¤§¶¡·|¦³½u±N¥¦Ì³s°_¨Ó. ¦ýY¼Æ¾Ú¸ê®ÆÀɤº¦³ªÅ¦C, «hªÅ¦C«e«áªº¨âÂI¤§¶¡¤£·|¦³³s½u. ½d¨Ò
- ¨Ï¥ÎªÌ¥i¥H¦Û¦æ©w¸q¨ç¼Æ (¨£ help user-defined)
- ±`¥Î³]©w¥i¥H©ñ¦b ~/.gnuplot Àɤº, ¨C¦¸¶i¤J gnuplot ®É, ·|¦Û°Ê°õ¦æ. ¨Æ¹ê¤W¤]¥i¥H§â¬ÛÃöªº gnuplot ©R¥O»P¦Û¦æ©w¸qªº¨ç¼Æ¼g¦b¯Â¤å¦rÀɤº, ¦s¦¨¥ô¦óÀɦW, ¥un¥Î load ©R¥O´N¥i¥H¸ü¶i¨Ó.
- ³sÄòµe¦n´XӹϮÉ, ¥i¥Î pause ¼È°±, Åý¬Ýªº¤H¸ò±o¤W.
°Ñ¦Ò¸ê®Æ
- ¤¤¬ã°|: GNUPLOT ¾ÉŪ
- ¥Î¦Û¥Ñªº¤u¨ã¾Ç²ßpºâª«²z (¤å¤Æ¤j¾Çª«²z¨t¹Q©¾¼Ý¦Ñ®v)
»ÊÁÂ
¥»¤å¥ó±µ¨ü¥H¤Upµe¸É§U:
- ±Ð¨|³¡94¾Ç¦~«×¤U¾Ç´Á ¡uÂ÷®q¤Î°¾»·¦a°Ï¤¤¤p¾Ç¦b¾±Ð®v»·¶Z±Ð¾Ç½Òµ{¶}¿ìpµe -- µu´Á¬ã²ß½Òµ{¶}¿ìpµe¡v
- ¸gÀÙ³¡¤u·~§½ ¡u¦Û¥Ñ³nÅé®à±À³¥Î¤ä´©¾ã¦XªA°Èpµe¡v
- ¥»¶³Ì·sª©ºô§}: http://people.ofset.org/~ckhung//b/ma/gnuplot.php; ±z©Ò¬Ý¨ìªºª©¥»: April 14 2008 08:45:07.
- §@ªÌ: ´Â¶§¬ì§Þ¤j¾Ç ¸ê°TºÞ²z¨t ¬x´Â¶Q
- Ä_¨©§A§Úªº¦a²y, ½Ð ´î¤Ö¦C¦L, ¦h¥ÎI±, ¥á±ó®É°µ©U§£¤ÀÃþ¡C
- ¥»¤å¥ó¥H Creative Commons Attribution-ShareAlike License ©Î¥H Free Document License ¤è¦¡¤½¶}±ÂÅv¤j²³¦Û¥Ñ½Æ»s/×§ï/´²§G¡C
![[rss feed ¹Ï®×]](/~ckhung//i/rss.png)
![[±aÀY¤É¯Å Office 2007? §O·í®`¸s¤§°¨]](/~ckhung//i/n7/no-office2007.png)
![[(¤O¨Dºû«ù) ²Å¦X xhtml 1.0]](/~ckhung//i/vxhtml10.png)
