ExportPlot (soubor,typ)
ExportPlot (soubor)
Exportovat obsah okna s grafem do souboru. Typ je řetězec, který určuje typ souboru, který se má použít – „png“, „eps“ nebo „ps“. Když typ souboru není zadán, určí se podle přípony, která by v takovém případě mela být „.png“, „.eps“ nebo „.ps“.
Upozorňujeme, že soubory se přepisují bez dotazu.
Při úspěšném exportu je vrácena hodnota pravda. Jinak je vypsána chyba a vyvolána výjimka.
Examples:
genius>
ExportPlot("file.png")
genius>
ExportPlot("/directory/file","eps")
Verze 1.0.16 a novější.
LinePlot (fce1,fce2,fce3,...)
LinePlot (fce1,fce2,fce3,x1,x2)
LinePlot (fce1,fce2,fce3,x1,x2,y1,y2)
LinePlot (fce1,fce2,fce3,[x1,x2])
LinePlot (fce1,fce2,fce3,[x1,x2,y1,y2])
Vykreslí funkci (nebo několik funkcí) v podobě čárového grafu. Prvních (až 10) argumentů jsou funkce, volitelně můžete zadat meze vykreslovaného okna jako souřadnice x1
, x2
, y1
, y2
. Pokud žádné meze nejsou zadány, použijí se aktuálně nastavené meze (viz LinePlotWindow
). Pokud nejsou zadány jen meze v ose y, funkce se propočítají a vezme se jejich minimum a maximu.
Parametr LinePlotDrawLegends
ovládá vykreslování legendy.
Examples:
genius>
LinePlot(sin,cos)
genius>
LinePlot(`(x)=x^2,-1,1,0,1)
LinePlotClear ()
Zobrazí okno pro vykreslování čar a vymaže funkce a ostatní čáry, které jsou v něm vykresleny.
LinePlotCParametric (fce,...)
LinePlotCParametric (fce,t1,t2,tprirust)
LinePlotCParametric (fce,t1,t2,tprirust,x1,x2,y1,y2)
Vykreslit parametrickou funkci komplexní hodnoty v podobě čárového grafu. Jako první se předává funkce, která vrací x+iy
, následovaná volitelnými omezeními t1,t2,tprirust
pro t
a pak mezemi v podobě x1,x2,y1,y2
.
Pokud žádné meze nejsou zadány, použijí se aktuálně nastavené meze (viz LinePlotWindow
). Místo mezí x a y je možné zadat řetězec "fit" a meze se pak zvolí podle maximálního rozsahu grafu.
Parametr LinePlotDrawLegends
ovládá vykreslování legendy.
LinePlotDrawLine (x1,y1,x2,y2,...)
LinePlotDrawLine (v,...)
Vykreslit čáru z x1
,y1
do x2
,y2
. x1
,y1
, x2
,y2
může být pro delší lomené čáry nahrazeno maticí n
krát 2. Připadně vektor v
může být sloupcový vektor komplexních čísel, což je matice n
krát 1 a jednotlivá komplexní čísla jsou pak považována za body v rovině.
Mohou být přidány dodatečné parametry, které určují barvu, tloušťku a šipky čáry a vykreslení okna nebo legendy. Stačí přidat argument v podobě řetězce "color"
, "thickness"
, "window"
, "arrow"
nebo "legend"
a za ním určit barvu, tloušťku, okno jako 4prvkový vektor, typ šipky nebo legendu. (Šipka a okno jsou podporovány od verze 1.0.6.)
Pokud je čára považovaná za vyplněný mnohoúhelník, vyplněný danou barvou, můžete zadat argument "filled"
. K dispozici od verze 1.0.22.
Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou rozpozná GTK, jako "red"
, "blue"
, "yellow"
, apod. Nebo druhou možností je zadat barvu ve formátu RGB jako "#rgb"
, "#rrggbb"
nebo "#rrrrggggbbbb"
, kde r, g a b jsou číslice šestnáctkové soustavy červené, zelené a modré složky barvy. A nakonec třetí možností, od verze 1.0.18, je také určení barvy vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1, např. [1.0,0.5,0.1]
.
Okno by mělo být zadáno buď obvyklým způsobem jako [x1,x2,y1,y2]
nebo alternativně může být použit řetězec "fit"
, v kterémž to případě bude rozsah x určen přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.
Specifikace šipky by měla být "origin"
(počátek), "end"
(konec), "both"
(obojí) nebo "none"
(nic).
A nakonec legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. Samozřejmě jen v případě, že se legenda tiskne.
Examples:
genius>
LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)
genius>
LinePlotDrawLine([0,0;1,-1;-1,-1])
genius>
LinePlotDrawLine([0,0;1,1],"arrow","end")
genius>
LinePlotDrawLine(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The Solution")
genius>
for r=0.0 to 1.0 by 0.1 do LinePlotDrawLine([0,0;1,r],"color",[r,(1-r),0.5],"window",[0,1,0,1])
genius>
LinePlotDrawLine([0,0;10,0;10,10;0,10],"filled","color","green")
Na rozdíl od většiny ostatních funkcí, u kterých je jedno, jestli je předán sloupcový nebo řádkový vektor, při zadávání bodů v podobě vektoru komplexních čísel je kvůli možným nejednoznačnostem nutné vždy zadat sloupcový vektor.
Zadávání v
jako sloupcového vektoru komplexních čísel je implementováno od verze 1.0.22.
LinePlotDrawPoints (x,y,...)
LinePlotDrawPoints (v,...)
Vykreslit bod v x
, y
. Vstupem může být matice n
krát 2 pro n
různých bodů. Tato funkce má v podstatě stejné vstupní údaje jako LinePlotDrawLine. Případně vektor v
může být sloupcový vektor komplexních čísel, což je matice n
krát 1 a jednotlivá komplexní čísla jsou považována za body v rovině.
Mohou být přidány dodatečné parametry, které určují barvu a tloušťku čáry a vykreslení okna nebo legendy. Stačí přidat argument v podobě řetězce "color"
, "thickness"
, "window"
nebo "legend"
a za ním určit barvu, tloušťku, okno jako 4prvkový vektor nebo legendu.
Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou rozpozná GTK, jako "red"
, "blue"
, "yellow"
, apod. Nebo druhou možností je zadat barvu ve formátu RGB jako "#rgb"
, "#rrggbb"
nebo "#rrrrggggbbbb"
, kde r, g a b jsou číslice šestnáctkové soustavy červené, zelené a modré složky barvy. A nakonec třetí možností je také určení barvy vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1.
Okno by mělo být zadáno buď obvyklým způsobem jako [x1,x2,y1,y2]
nebo alternativně může být použit řetězec "fit"
, v kterémž to případě bude rozsah x určen přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.
A nakonec legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. Samozřejmě jen v případě, že se legenda tiskne.
Examples:
genius>
LinePlotDrawPoints(0,0,"color","blue","thickness",3)
genius>
LinePlotDrawPoints([0,0;1,-1;-1,-1])
genius>
LinePlotDrawPoints(RungeKuttaFull(`(x,y)=y,0,0.001,10,100),"color","blue","legend","The Solution")
genius>
LinePlotDrawPoints([1;1+1i;1i;0],"thickness",5)
genius>
LinePlotDrawPoints(ApplyOverMatrix((0:6)',`(k)=exp(k*2*pi*1i/7)),"thickness",3,"legend","The 7th roots of unity")
Na rozdíl od většiny ostatních funkcí, u kterých je jedno, jestli jim předáte sloupcový nebo řádkový vektor, může u předávání bodu v podobě vektoru komplexních čísel docházet k nejednoznačnostem. Proto musíte vždy předat sloupcový vektor. Všimněte si v posledním příkladu transpozice vektoru 0:6
, aby se z něj stal sloupcový vektor.
Dostupné od verze 1.0.18. Zadávání v
v podobě sloupcového vektoru komplexních čísel je implementováno od verze 1.0.22.
LinePlotMouseLocation ()
Vrátit řádkový vektor v kreslení odpovídající aktuální pozici myši. Pokud kreslení není viditelné, vypíše se chyba a vrátí null
. V takovém případě byste měli spustit LinePlot
nebo LinePlotClear
, abyste přepnuli okno s grafem do režimu kreslení. Viz také LinePlotWaitForClick
.
LinePlotParametric (xfce,yfce,...)
LinePlotParametric (xfce,yfce,t1,t2,tprirust)
LinePlotParametric (xfce,yfce,t1,t2,tprirust,x1,x2,y1,y2)
LinePlotParametric (xfce,yfce,t1,t2,tprirust,[x1,x2,y1,y2])
LinePlotParametric (xfce,yfce,t1,t2,tprirust, "fit")
Vykreslit parametrickou funkci v podobě čárového grafu. Jako první se zadávají funkce pro x
a y
, následované volitelnými omezeními t1,t2,tprirust
pro t
a pak mezemi v podobě x1,x2,y1,y2
.
Pokud žádné meze nejsou zadány, použijí se aktuálně nastavené meze (viz LinePlotWindow
). Místo mezí x a y je možné zadat řetězec "fit" a meze se pak zvolí podle maximálního rozsahu grafu.
Parametr LinePlotDrawLegends
ovládá vykreslování legendy.
LinePlotWaitForClick ()
Pokud je v režimu kreslení, čeká na kliknutí v kreslícím okně a následně vrátí pozici kliknutí v podobě řádkového vektoru. Pokud je okno zavřené, vrátí se funkce okamžitě s hodnotou null
. Pokud okno není v režimu kreslení, přepne jej do něj a, pokud není zobrazené, zobrazí jej. Viz také LinePlotMouseLocation
.
PlotCanvasFreeze ()
Dočasně zmrazí vykreslování grafu na plátno. To se hodí, když kreslíte spoustu prvků a chcete to pozdržet, aby se fyzicky vykreslilo až všechno naráz a předešlo se tím blikání. Až máte veškeré kreslení hotovo, měli byste zavolat funkci PlotCanvasThaw
.
Na konci jakéhokoliv provádění je plátno automaticky rozmrazeno, takže by se nemělo stát, že zůstane zmrazené. Kupříkladu ve chvíli, kdy se zobrazí nový příkazový řádek, dojde k automatickému rozmrazení. Také si všimněte, že volání zmrazení a rozmrazení mohou být zanořená.
Verze 1.0.18 a novější.
PlotCanvasThaw ()
Rozmrazí plátno pro vykreslování grafu zmrazené pomocí PlotCanvasFreeze
a ihned jej překreslí. Platno je také rozmrazeno vždy po skončení provádění libovolného programu.
Verze 1.0.18 a novější.
PlotWindowPresent ()
Zobrazí a přenese do popředí vykreslovací okno, případně jej vytvoří, pokud je třeba. Normálně je okno vytvořeno, když je zavolána některá z kreslících funkcí, ale nemusí být vždy přeneseno do popředí, když je schováno za jinými okny. Proto je dobré volat tento kript, když bylo vykreslovací okno vytvořeno již dříve a nyní je schováno za konzolí nebo jinými okny.
Verze 1.0.19 a novější.
SlopefieldClearSolutions ()
Vymazat řešení vykreslená funkcí SlopefieldDrawSolution
.
SlopefieldDrawSolution (x, y, dx)
Když je aktivní vykreslování směrového pole, vykreslí řešení se zadanou počáteční podmínkou. Použita je standardní Rungeho-Kuttova metoda s přírůstkem dx
. Řešení v grafu zůstanou, dokud není zobrazen jiný graf nebo není zavolána funkce SlopefieldClearSolutions
. Pro vykreslení řešení můžete použít i grafické rozhraní a počáteční podmínky zadat pomocí myši.
SlopefieldPlot (fce)
SlopefieldPlot (fce,x1,x2,y1,y2)
Vykreslit směrové pole. Funkce fce
by měla přebírat dvě reálná čísla x
a y
nebo jedno komplexní číslo. Volitelně můžete zadat meze vykreslovacího okna jako souřadnice x1
, x2
, y1
, y2
. Pokud žádné meze nejsou zadány, použijí se aktuálně nastavení mezí (viz LinePlotWindow
).
Parametr LinePlotDrawLegends
ovládá vykreslování legendy.
Examples:
genius>
SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)
SurfacePlot (fce)
SurfacePlot (fce,x1,x2,y1,y2,z1,z2)
SurfacePlot (fce,x1,x2,y1,y2)
SurfacePlot (fce,[x1,x2,y1,y2,z1,z2])
SurfacePlot (fce,[x1,x2,y1,y2])
Vykreslit funkci plochy, která přebírá buď dva argumenty nebo komplexní číslo. Jako první se předává funkce, pak následují meze x1
, x2
, y1
, y2
, z1
, z2
. Pokud žádné meze nejsou zadány, použijí se aktuálně nastavené meze (viz SurfacePlotWindow
). V současnosti umí Genius vykreslovat jen funkci jedné plochy.
Když nejsou meze zadány, použije se pro ně minimum a maximum funkce.
Examples:
genius>
SurfacePlot(|sin|,-1,1,-1,1,0,1.5)
genius>
SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)
genius>
SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)
SurfacePlotClear ()
Zobrazí okno pro vykreslování povrchů a vymaže funkce a ostatní čáry, které jsou v něm vykresleny.
Dostupné ve verzi 1.0.19 a novějších.
SurfacePlotData (data)
SurfacePlotData (data,popisek)
SurfacePlotData (data,x1,x2,y1,y2,z1,z2)
SurfacePlotData (data,popisek,x1,x2,y1,y2,z1,z2)
SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])
SurfacePlotData (data,popisek,[x1,x2,y1,y2,z1,z2])
Vykreslit povrch podle dat. Data jsou matice n × 3, jejíž řádky jsou souřadnice x, y a z. Případně data mohou být vektor, jehož délka je dělitelná 3 a který obsahuje trojice x, y, z. Data by měla obsahovat nejméně 3 body.
Volitelně je možné předat popisek a také volitelné meze. Když meze nejsou uvedeny, vypočtou se z dat, ale nepoužívá se funkce SurfacePlotWindow
, pokud ji chcete použít, musíte to provést explicitně. Když není předán popisek, použije se prázdný.
Examples:
genius>
SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])
genius>
SurfacePlotData(data,"My data")
genius>
SurfacePlotData(data,-1,1,-1,1,0,10)
genius>
SurfacePlotData(data,SurfacePlotWindow)
Here's an example of how to plot in polar coordinates,
in particular how to plot the function
-r^2 * theta
:
genius>
d:=null; for r=0 to 1 by 0.1 do for theta=0 to 2*pi by pi/5 do d=[d;[r*cos(theta),r*sin(theta),-r^2*theta]];
genius>
SurfacePlotData(d)
Verze 1.0.16 a novější.
SurfacePlotDataGrid (data,[x1,x2,y1,y2])
SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])
SurfacePlotDataGrid (data,[x1,x2,y1,y2],popisek)
SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],popisek)
Vykreslit plochu podle pravidelných obdélníkových dat. Data jsou dána v matici n krát m, kde řádky jsou souřadnice x a sloupce souřadnice y. Souřadnice x je rozdělena do stejnoměrných n-1 intervalů a souřadnice y do stejnoměrných m-1 intervalů. Meze x1
a x2
udávájí rozsah na ose x, který se má použit a obdobně meze y1
a y2
udávají rozsah na ose y. Pokud nejsou uvedeny meze z1
a z2
, jsou vypočteny z dat (budou to extrémní hodnoty v datech).
Volitelně se může zadat popisek, pokud zadán není, použije se prázdný.
Examples:
genius>
SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])
genius>
SurfacePlotDataGrid(data,[-1,1,-1,1],"My data")
genius>
d:=null; for i=1 to 20 do for j=1 to 10 do d@(i,j) = (0.1*i-1)^2-(0.1*j)^2;
genius>
SurfacePlotDataGrid(d,[-1,1,0,1],"half a saddle")
Verze 1.0.16 a novější.
SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)
SurfacePlotDrawLine (v,...)
Vykreslit čáru z x1
,y1
,z1
do x2
,y2
,z2
. x1
, y1
, z1
, x2
, y2
, z2
může být pro delší lomené čáry nahrazeno maticí n
krát 3.
Mohou být přidány dodatečné parametry, které určují barvu a tloušťku čáry a vykreslení okna nebo legendy. Stačí přidat argument v podobě řetězce "color"
, "thickness"
, "window"
nebo "legend"
a za ním určit barvu, tloušťku, okno jako 6prvkový vektor nebo legendu.
Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou rozpozná GTK, jako "red"
, "blue"
, "yellow"
, apod. Nebo druhou možností je zadat barvu ve formátu RGB jako "#rgb"
, "#rrggbb"
nebo "#rrrrggggbbbb"
, kde r, g a b jsou číslice šestnáctkové soustavy červené, zelené a modré složky barvy. A nakonec třetí možností, od verze 1.0.18, je také určení barvy vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1, např. [1.0,0.5,0.1]
.
Okno by mělo být zadáno buď obvyklým způsobem jako [x1,x2,y1,y2,z1,z2]
nebo alternativně může být použit řetězec "fit"
, v kterémž to případě bude rozsah x určen přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.
A nakonec legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. Samozřejmě jen v případě, že se legenda tiskne.
Examples:
genius>
SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)
genius>
SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])
Dostupné ve verzi 1.0.19 a novějších.
SurfacePlotDrawPoints (x,y,z,...)
SurfacePlotDrawPoints (v,...)
Vykreslit bod v x
,y
,z
. Vstupem může být matice n
krát 3 pro n
různých bodů. Tato funkce má v podstatě stejné vstupní údaje jako SurfacePlotDrawLine.
Mohou být přidány dodatečné parametry, které určují barvu a tloušťku čáry a vykreslení okna nebo legendy. Stačí přidat argument v podobě řetězce "color"
, "thickness"
, "window"
nebo "legend"
a za ním určit barvu, tloušťku, okno jako 6prvkový vektor nebo legendu.
Barva by měla být buď řetězec symbolizující běžným anglickým slovem barvu, kterou rozpozná GTK, jako "red"
, "blue"
, "yellow"
, apod. Nebo druhou možností je zadat barvu ve formátu RGB jako "#rgb"
, "#rrggbb"
nebo "#rrrrggggbbbb"
, kde r, g a b jsou číslice šestnáctkové soustavy červené, zelené a modré složky barvy. A nakonec třetí možností je také určení barvy vektorem reálných čísel, která představují červenou, zelenou a modrou složku v rozmezí 0 až 1.
Okno by mělo být zadáno buď obvyklým způsobem jako [x1,x2,y1,y2,z1,z2]
nebo alternativně může být použit řetězec "fit"
, v kterémž to případě bude rozsah x určen přesně a rozsah y bude nastaven s pětiprocentním přesahem křivky.
A nakonec legenda, která by měla být zadána jako řetězec, který se použije k osvětlení grafu. Samozřejmě jen v případě, že se legenda tiskne.
Examples:
genius>
SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)
genius>
SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])
Dostupné ve verzi 1.0.19 a novějších.
VectorfieldClearSolutions ()
Vymazat řešení vykreslené funkcí VectorfieldDrawSolution
.
Verze 1.0.6 a novější.
VectorfieldDrawSolution (x, y, dt, tdelka)
Když je aktivní vykreslování vektorového pole, vykreslí řešení se zadanou počáteční podmínkou. Použita je standardní Rungeho-Kuttova metoda s přírůstkem dt
pro interval délky tdelka
. Řešení v grafu zůstanou, dokud není zobrazen jiný graf nebo není zavolána funkce VectorfieldClearSolutions
. Pro vykreslení řešení můžete použít i grafické rozhraní a počáteční podmínky zadat pomocí myši.
Verze 1.0.6 a novější.
VectorfieldPlot (fcex, fcey)
VectorfieldPlot (fcex, fcey, x1, x2, y1, y2)
Vykreslit dvourozměrné vektorové pole. Funkce fcex
by měla být dx/dt vektorového pole a funkce fcey
by měla být dy/dt vektorového pole. Funkce by měly přebírat dvě reálná čísla x
a y
nebo jedno komplexní číslo. Pokud je parametr VectorfieldNormalized
nastaven na true
, pak je velikost vektorů normalizována. To znamená, že je zobrazen jen směr a velikost ne.
Volitelně můžete zadat meze vykreslovaného okna jako souřadnice x1
, x2
, y1
, y2
. Pokud žádné meze nejsou zadány, použijí se aktuálně nastavené meze (viz LinePlotWindow
).
Parametr LinePlotDrawLegends
ovládá vykreslování legendy.
Examples:
genius>
VectorfieldPlot(`(x,y)=x^2-y, `(x,y)=y^2-x, -1, 1, -1, 1)