Grafritning

ExportPlot
ExportPlot (fil,typ)
ExportPlot (fil)

Exportera innehållet för graffönstret till en fil. Typen är en sträng som anger filtypen att använda, "png", "eps" eller "ps". Om typen inte är angiven antas den vara ändelsen, i vilket fall ändelsen måste vara ".png", ".eps", eller ".ps".

Observera att filer skrivs över utan att du tillfrågas.

Vid lyckad export returneras true. I annat fall skrivs ett fel ut och ett undantag flaggas.

Examples:

genius> ExportPlot("file.png")
genius> ExportPlot("/directory/file","eps")

Version 1.0.16 och framåt.

LinePlot
LinePlot (funk1,funk2,funk3,...)
LinePlot (funk1,funk2,funk3,x1,x2)
LinePlot (funk1,funk2,funk3,x1,x2,y1,y2)
LinePlot (funk1,funk2,funk3,[x1,x2])
LinePlot (funk1,funk2,funk3,[x1,x2,y1,y2])

Rita en funktion (eller flera) med en linjegraf. De första (upp till 10) argumenten är funktioner, sedan kan du valfritt ange gränserna för graffönstret som x1, x2, y1, y2. Om gränser inte anges kommer de aktuellt inställda gränserna att användas (Se LinePlotWindow) Om y-gränserna inte anges beräknas funktionerna och sedan används max- och minvärdena.

Parametern LinePlotDrawLegends styr om förklaringen ritas ut.

Examples:

genius> LinePlot(sin,cos)
genius> LinePlot(`(x)=x^2,-1,1,0,1)

LinePlotClear
LinePlotClear ()

Visa linjegrafsfönstret och rensa bort funktioner och alla andra linjer som ritades.

LinePlotCParametric
LinePlotCParametric (funk,...)
LinePlotCParametric (funk,t1,t2,tinc)
LinePlotCParametric (funk,t1,t2,tinc,x1,x2,y1,y2)

Rita en parametrisk komplexvärd funktion med en linjegraf. Först kommer funktionen som returnerar x+iy sedan valfritt t-gränserna som t1,t2,tinc, sedan valfritt gränserna som x1,x2,y1,y2.

Om gränser inte anges kommer de aktuellt inställda gränserna att användas (Se LinePlotWindow). Om istället strängen "fit" anges för x- och y-gränserna kommer gränserna vara den största utsträckningen för grafen

Parametern LinePlotDrawLegends styr om förklaringen ritas ut.

LinePlotDrawLine
LinePlotDrawLine (x1,y1,x2,y2,...)
LinePlotDrawLine (v,...)

Rita en linje från x1,y1 till x2,y2. x1,y1, x2,y2 kan ersättas med en n×2-matris för ett längre polygontåg. Alternativt kan vektorn v vara en kolumnvektor med komplexa tal, det vill säga en n×1-matris och varje komplext tal anses då vara en punkt i planet.

Extra parametrar kan läggas till för att ange linjefärg, tjocklek, pilar, graffönstret eller förklaring. Du kan göra detta genom att lägga till en argumentsträng "color", "thickness", "window", "arrow" eller "legend", och efter detta ange färgen, tjockleken, fönstret som en 4-vektor, piltyp eller förklaringen. (Pil och fönster är från version 1.0.6 och framåt.)

Om linjen ska behandlas som en fylld polygon som är fylld med den angivna färgen kan du ange argumentet "filled". Sedan version 1.0.22 och framåt.

Färgen ska vara antingen en sträng som indikerar det vanliga engelska ordet för färgen som GTK kommer känna igen, som "red", "blue", "yellow", o.s.v... Alternativt kan färgen anges i RGB-format som "#rgb", "#rrggbb" eller "#rrrrggggbbbb", där r, g och b är hexadecimala tal för de röda, gröna och blåa komponenterna av färgen. Slutligen kan sedan version 1.0.18 färgen också anges som en reell vektor som anger de röda gröna och blåa komponenterna där komponenterna är mellan 0 och 1, t.ex. [1.0,0.5,0.1].

Fönstret ska som vanligt anges som [x1,x2,y1,y2], eller kan alternativt anges som en sträng "fit" i vilket fall x-intervallet kommer ställas in precis och y-intervallet med fem procents gränser kring linjen.

Pilspecifikation ska vara "origin", "end", "both" eller "none".

Slutligen ska förklaring vara en sträng som kan användas som förklaring i grafen. Det vill säga om förklaringar skrivs ut.

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")

Till skillnad från många andra funktioner som inte bryr sig om de tar en kolumn- eller radvektor så måste på grund av möjliga tvetydigheter punkter som anges som en vektor av komplexa tal alltid anges som en kolumnvektor.

Att ange v som en kolumnvektor med komplexa tal är implementerat från version 1.0.22 och framåt.

LinePlotDrawPoints
LinePlotDrawPoints (x,y,...)
LinePlotDrawPoints (v,...)

Rita en punkt vid x,y. Indata kan vara en n×2-matris för n olika punkter. Denna funktion har i stort sett samma indata som LinePlotDrawLine. Alternativt kan vektorn v vara en kolumnvektor med komplexa tal, det vill säga en n×1-matris och varje komplext tal anses då vara en punkt i planet.

Extra parametrar kan läggas till för att ange färg, tjocklek, graffönstret eller förklaring. Du kan göra detta genom att lägga till en argumentsträng "color", "thickness", "window" eller "legend", och efter detta ange färgen, tjockleken, fönstret som en 4-vektor eller förklaringen.

Färgen ska vara antingen en sträng som indikerar det vanliga engelska ordet för färgen som GTK kommer känna igen, som "red", "blue", "yellow", o.s.v... Alternativt kan färgen anges i RGB-format som "#rgb", "#rrggbb" eller "#rrrrggggbbbb", där r, g och b är hexadecimala tal för de röda, gröna och blåa komponenterna av färgen. Slutligen kan färgen också anges som en reell vektor som anger de röda gröna och blåa komponenterna där komponenterna är mellan 0 och 1.

Fönstret ska som vanligt anges som [x1,x2,y1,y2], eller kan alternativt anges som en sträng "fit" i vilket fall x-intervallet kommer ställas in precis och y-intervallet med fem procents gränser kring linjen.

Slutligen ska förklaring vara en sträng som kan användas som förklaring i grafen. Det vill säga om förklaringar skrivs ut.

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")

Till skillnad från många andra funktioner som inte bryr sig om de tar en kolumn- eller radvektor så måste på grund av möjliga tvetydigheter punkter som anges som en vektor av komplexa tal alltid anges som en kolumnvektor. Notera därför i sista exemplet transponatet av vektorn 0:6 för att göra den till en kolumvektor.

Tillgängligt från version 1.0.18 och framåt. Att ange v som en kolumnvektor med komplexa tal är implementerat från version 1.0.22 och framåt.

LinePlotMouseLocation
LinePlotMouseLocation ()

Returnerar en radvektor för en punkt på linjegrafen som motsvarar den aktuella positionen för musen. Om linjegrafen inte är synlig skrivs ett fel ut och null returneras. I detta fall bör du köra LinePlot eller LinePlotClear för att ställa graffönstret i linjegrafsläget. Se även LinePlotWaitForClick.

LinePlotParametric
LinePlotParametric (xfunk,yfunk,...)
LinePlotParametric (xfunk,yfunk,t1,t2,tinc)
LinePlotParametric (xfunk,yfunk,t1,t2,tinc,x1,x2,y1,y2)
LinePlotParametric (xfunk,yfunk,t1,t2,tinc,[x1,x2,y1,y2])
LinePlotParametric (xfunk,yfunk,t1,t2,tinc,"fit")

Rita en parametrisk funktion med en linjegraf. Först kommer funktionerna för x och y, sedan valfritt t-gränserna som t1,t2,tinc, sedan valfritt gränserna som x1,x2,y1,y2.

Om x- och y-gränser inte anges kommer de aktuellt inställda gränserna att användas (Se LinePlotWindow). Om istället strängen "fit" anges för x- och y-gränserna kommer gränserna vara den största utsträckningen för grafen

Parametern LinePlotDrawLegends styr om förklaringen ritas ut.

LinePlotWaitForClick
LinePlotWaitForClick ()

Om i linjegrafsläge så inväntas ett klick på linjegrafsfönstret och platsen för klicket returneras som en radvektor. Om fönstret är stängt returnerar funktionen omedelbart null. Om fönstret inte är i linjegrafsläge ställs det i det läget och visas om det inte visats. Se även LinePlotMouseLocation.

PlotCanvasFreeze
PlotCanvasFreeze ()

Frys tillfälligt ritande av grafens rityta. Användbart om du behöver rita ett gäng element och vill fördröja ritande av allt för att undvika flimmer i en animering. Efter att allt har ritats bör du anropa PlotCanvasThaw.

Ritytan töas alltid upp efter att en exekvering avslutas. så den kommer aldrig att förbli frusen. Till exempel töas ritytan automatiskt ögonblicket då en ny kommandorad visas. Observera också att anrop för att frysa och töa upp kan nästas på ett säkert sätt.

Version 1.0.18 och framåt.

PlotCanvasThaw
PlotCanvasThaw ()

Töa upp ritytan för graf som frystes av PlotCanvasFreeze och rita om ritytan omedelbart. Ritytan töas också alltid upp efter att ett program slutat exekvera.

Version 1.0.18 och framåt.

PlotWindowPresent
PlotWindowPresent ()

Visa och höj graffönstret, skapa det om nödvändigt. Normalt skapas fönstret då en av graffunktionerna anropas, men det höjs inte alltid om det råkar vara under andra fönster. Denna funktion är därför bra att anropa i skript där graffönstret kan ha skapats tidigare, och nu är dolt bakom konsolen eller andra fönster.

Version 1.0.19 och framåt.

SlopefieldClearSolutions
SlopefieldClearSolutions ()

Rensar bort lösningarna som ritats av funktionen SlopefieldDrawSolution.

SlopefieldDrawSolution
SlopefieldDrawSolution (x, y, dx)

Då en riktningsfältsgraf är aktiv, rita en lösning med de angivna startvillkoren. Den vanliga Runge-Kutta-metoden används med ökning dx. Lösningarna stannar i grafen tills en annan graf visas eller tills du anropar SlopefieldClearSolutions. Du kan också använda det grafiska gränssnittet för att rita lösningar och ange startvillkor med musen.

SlopefieldPlot
SlopefieldPlot (funk)
SlopefieldPlot (funk,x1,x2,y1,y2)

Rita ett riktningsfält. Funktionen funk ska ta två reella tal x och y eller ett ensamt komplext tal. Valfritt kan du ange gränserna för graffönstret som x1, x2, y1, y2. Om gränser inte anges kommer de aktuellt inställda gränserna att användas (Se LinePlotWindow).

Parametern LinePlotDrawLegends styr om förklaringen ritas ut.

Examples:

genius> SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)

SurfacePlot
SurfacePlot (funk)
SurfacePlot (funk,x1,x2,y1,y2,z1,z2)
SurfacePlot (funk,x1,x2,y1,y2)
SurfacePlot (funk,[x1,x2,y1,y2,z1,z2])
SurfacePlot (funk,[x1,x2,y1,y2])

Rita en ytfunktion som antingen tar två argument eller ett komplext tal. Först kommer funktionen sedan valfritt gränser som x1, x2, y1, y2, z1, z2. Om gränser inte anges kommer de aktuellt inställda gränserna att användas (Se SurfacePlotWindow). Genius kan för närvarande endast rita ut en ensam ytgraf.

Om z-gränserna inte är angivna kommer maximum- och minimumvärdena för funktionen att användas.

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
SurfacePlotClear ()

Visa ytgrafsfönstret och rensa ut funktioner och alla andra linjer som ritats.

Tillgängligt i version 1.0.19 och framåt.

SurfacePlotData
SurfacePlotData (data)
SurfacePlotData (data,etikett)
SurfacePlotData (data,x1,x2,y1,y2,z1,z2)
SurfacePlotData (data,etikett,x1,x2,y1,y2,z1,z2)
SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])
SurfacePlotData (data,etikett,[x1,x2,y1,y2,z1,z2])

Rita en yta från data. Data är en n×3-matris vars rader är x-, y- och z-koordinaterna. Data kan också helt enkelt vara en vektor vars längd är en multipel av 3 och därmed innehåller tripplarna av x, y, z. Data ska innehålla minst 3 punkter.

Valfritt kan vi ange etiketten och valfritt även gränserna. Om gränserna inte anges beräknas de från data, SurfacePlotWindow används inte, om du vill använda det, skicka med det explicit. Om ingen etikett anges används en tom etikett.

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)

Version 1.0.16 och framåt.

SurfacePlotDataGrid
SurfacePlotDataGrid (data,[x1,x2,y1,y2])
SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])
SurfacePlotDataGrid (data,[x1,x2,y1,y2],etikett)
SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],etikett)

Rita en yta från vanliga rektangulära data. Data ges i en n×m-matris där raderna är x-koordinaten och kolumnerna är y-koordinaten. x-koordinaten delas in i n-1 lika stora delintervall och y-koordinaten delas in i m-1 lika stora delintervall. Gränserna x1 och x2 ger intervallet på x-axeln som vi använder, och gränserna y1 och y2 ger intervallet på y-axeln som vi använder. Om gränserna z1 och z2 inte anges beräknas de från data (till att vara extremvärdena från data).

Valfritt kan vi ange etiketten, om etikett inte anges används en tom etikett.

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")

Version 1.0.16 och framåt.

SurfacePlotDrawLine
SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)
SurfacePlotDrawLine (v,...)

Rita en linje från x1,y1,z1 till x2,y2,z2. x1,y1,z1, x2,y2,z2 kan ersättas med en n×3-matris för ett längre polygontåg.

Extra parametrar kan läggas till för att ange linjefärg, tjocklek, graffönster eller förklaring. Du kan göra detta genom att lägga till en argumentsträng "color", "thickness", "window" eller "legend", och efter detta ange färgen, tjockleken, fönstret som en 6-vektor eller förklaringen.

Färgen ska vara antingen en sträng som indikerar det vanliga engelska ordet för färgen som GTK kommer känna igen, som "red", "blue", "yellow", o.s.v... Alternativt kan färgen anges i RGB-format som "#rgb", "#rrggbb" eller "#rrrrggggbbbb", där r, g och b är hexadecimala tal för de röda, gröna och blåa komponenterna av färgen. Slutligen kan sedan version 1.0.18 färgen också anges som en reell vektor som anger de röda gröna och blåa komponenterna där komponenterna är mellan 0 och 1, t.ex. [1.0,0.5,0.1].

Fönstret ska som vanligt anges som [x1,x2,y1,y2,z1,z2], eller kan alternativt anges som en sträng "fit" i vilket fall x-intervallet kommer ställas in precis och y-intervallet med fem procents gränser kring linjen.

Slutligen ska förklaring vara en sträng som kan användas som förklaring i grafen. Det vill säga om förklaringar skrivs ut.

Examples:

genius> SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)
genius> SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])

Tillgängligt i version 1.0.19 och framåt.

SurfacePlotDrawPoints
SurfacePlotDrawPoints (x,y,z,...)
SurfacePlotDrawPoints (v,...)

Rita en punkt vid x,y,z. Indata kan vara en n×3-matris för n olika punkter. Denna funktion har i huvudsak samma indata som SurfacePlotDrawLine.

Extra parametrar kan läggas till för att ange linjefärg, tjocklek, graffönster eller förklaring. Du kan göra detta genom att lägga till en argumentsträng "color", "thickness", "window" eller "legend", och efter detta ange färgen, tjockleken, fönstret som en 6-vektor eller förklaringen.

Färgen ska vara antingen en sträng som indikerar det vanliga engelska ordet för färgen som GTK kommer känna igen, som "red", "blue", "yellow", o.s.v... Alternativt kan färgen anges i RGB-format som "#rgb", "#rrggbb" eller "#rrrrggggbbbb", där r, g och b är hexadecimala tal för de röda, gröna och blåa komponenterna av färgen. Slutligen kan färgen också anges som en reell vektor som anger de röda gröna och blåa komponenterna där komponenterna är mellan 0 och 1.

Fönstret ska som vanligt anges som [x1,x2,y1,y2,z1,z2], eller kan alternativt anges som en sträng "fit" i vilket fall x-intervallet kommer ställas in precis och y-intervallet med fem procents gränser kring linjen.

Slutligen ska förklaring vara en sträng som kan användas som förklaring i grafen. Det vill säga om förklaringar skrivs ut.

Examples:

genius> SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)
genius> SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])

Tillgängligt i version 1.0.19 och framåt.

VectorfieldClearSolutions
VectorfieldClearSolutions ()

Rensar bort lösningarna som ritats av funktionen VectorfieldDrawSolution.

Version 1.0.6 och framåt.

VectorfieldDrawSolution
VectorfieldDrawSolution (x, y, dt, tlen)

Då en verktorfältsgraf är aktiv, rita en lösning med de angivna startvillkoren. Den vanliga Runge-Kutta-metoden används med ökning dt under ett intervall med längden tlen. Lösningarna stannar i grafen tills en annan graf visas eller tills du anropar VectorfieldClearSolutions. Du kan också använda det grafiska gränssnittet för att rita lösningar och ange startvillkor med musen.

Version 1.0.6 och framåt.

VectorfieldPlot
VectorfieldPlot (funkx, funky)
VectorfieldPlot (funkx, funky, x1, x2, y1, y2)

Rita ett tvådimensionellt vektorfält. Funktionen funkx ska vara dx/dt för vektorfältet och funktionen funky ska vara dy/dt för vektorfältet. Funktionerna ska ta två reella tal x och y, eller ett ensamt komplext tal. Då parametern VectorfieldNormalized är true normaliseras magnituden för vektorerna. Det vill säga endast riktningen visas, inte magnituden.

Valfritt kan du ange gränserna för graffönstret som x1, x2, y1, y2. Om gränser inte anges kommer de aktuellt inställda gränserna att användas (Se LinePlotWindow).

Parametern LinePlotDrawLegends styr om förklaringen ritas ut.

Examples:

genius> VectorfieldPlot(`(x,y)=x^2-y, `(x,y)=y^2-x, -1, 1, -1, 1)