ExportPlot (file,type)
ExportPlot (file)
Export the contents of the plotting window to a file. The type is a string that specifies the file type to use, "png", "eps", or "ps". If the type is not specified, then it is taken to be the extension, in which case the extension must be ".png", ".eps", or ".ps".
Note that files are overwritten without asking.
On successful export, true is returned. Otherwise error is printed and exception is raised.
Examples:
genius>
ExportPlot("file.png")
genius>
ExportPlot("/directory/file","eps")
Version 1.0.16 onwards.
LinePlot (fonc1,fonc2,fonc3,...)
LinePlot (func1,func2,func3,x1,x2)
LinePlot (fonc1,fonc2,fonc3,x1,x2,y1,y2)
LinePlot (func1,func2,func3,[x1,x2])
LinePlot (func1,func2,func3,[x1,x2,y1,y2])
Plot a function (or several functions) with a line.
First (up to 10) arguments are functions, then optionally
you can specify the limits of the plotting window as
x1
, x2
,
y1
, y2
. If limits are not
specified, then the currently set limits apply
(See LinePlotWindow
)
If the y limits are not specified, then the functions are computed and then the maxima and minima
are used.
Le paramètre LinePlotDrawLegends
conditionne l'affichage de la légende.
Exemples :
genius>
LinePlot(sin,cos)
genius>
LinePlot(`(x)=x^2,-1,1,0,1)
LinePlotClear ()
Affiche la fenêtre d'affichage du tracé et efface les courbes déjà tracées.
LinePlotCParametric (fonc,...)
LinePlotCParametric (fonc,t1,t2,tinc)
LinePlotCParametric (fonc,t1,t2,tinc,x1,x2,y1,y2)
Trace la courbe d'une fonction paramétrique à valeurs complexes. En premier vient la fonction qui renvoie x+iy
puis, en option, les limites de t
sous la forme t1,t2,tinc
puis, en option, les limites de la fenêtre de tracé sous la forme x1,x2,y1,y2
.
If limits are not
specified, then the currently set limits apply
(See LinePlotWindow
).
If instead the string "fit" is given for the x and y limits, then the limits are the maximum extent of
the graph
Le paramètre LinePlotDrawLegends
conditionne l'affichage de la légende.
LinePlotDrawLine (x1,y1,x2,y2,...)
LinePlotDrawLine (v,...)
Draw a line from x1
,y1
to
x2
,y2
.
x1
,y1
,
x2
,y2
can be replaced by an
n
by 2 matrix for a longer polyline.
Alternatively the vector v
may be a column vector of complex numbers,
that is an n
by 1 matrix and each complex number is then
considered a point in the plane.
Extra parameters can be added to specify line color, thickness,
arrows, the plotting window, or legend.
You can do this by adding an argument string "color"
,
"thickness"
,
"window"
,
"arrow"
, or "legend"
, and after it specify
the color, the thickness, the window
as 4-vector, type of arrow, or the legend. (Arrow and window are from version 1.0.6 onwards.)
If the line is to be treated as a filled polygon, filled with the given color, you
can specify the argument "filled"
. Since version 1.0.22 onwards.
The color should be either a string indicating the common English word for the color
that GTK will recognize such as
"red"
, "blue"
, "yellow"
, etc...
Alternatively the color can be specified in RGB format as
"#rgb"
, "#rrggbb"
, or
"#rrrrggggbbbb"
, where the r, g, or b are hex digits of the red, green, and blue
components of the color. Finally, since version 1.0.18, the color
can also be specified as a real vector specifying the red green and
blue components where the components are between 0 and 1, e.g. [1.0,0.5,0.1]
.
The window should be given as usual as [x1,x2,y1,y2]
, or
alternatively can be given as a string
"fit"
in which case,
the x range will be set precisely and the y range will be set with
five percent borders around the line.
Arrow specification should be
"origin"
,
"end"
,
"both"
, or
"none"
.
Finally, legend should be a string that can be used as the legend in the graph. That is, if legends are being printed.
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")
Unlike many other functions that do not care if they take a column or a row vector, if specifying points as a vector of complex values, due to possible ambiguities, it must always be given as a column vector.
Specifying v
as a column vector of complex numbers is
implemented from version 1.0.22 and onwards.
LinePlotDrawPoints (x,y,...)
LinePlotDrawPoints (v,...)
Draw a point at x
,y
.
The input can be an n
by 2 matrix
for n
different points. This function has essentially the same
input as LinePlotDrawLine.
Alternatively the vector v
may be a column vector of complex numbers,
that is an n
by 1 matrix and each complex number is then
considered a point in the plane.
Extra parameters can be added to specify color, thickness,
the plotting window, or legend.
You can do this by adding an argument string "color"
,
"thickness"
,
"window"
,
or "legend"
, and after it specify
the color, the thickness, the window
as 4-vector, or the legend.
The color should be either a string indicating the common English word for the color
that GTK will recognize such as
"red"
, "blue"
, "yellow"
, etc...
Alternatively the color can be specified in RGB format as
"#rgb"
, "#rrggbb"
, or
"#rrrrggggbbbb"
, where the r, g, or b are hex digits of the red, green, and blue
components of the color. Finally the color can also be specified as a real vector specifying the red green
and blue components where the components are between 0 and 1.
The window should be given as usual as [x1,x2,y1,y2]
, or
alternatively can be given as a string
"fit"
in which case,
the x range will be set precisely and the y range will be set with
five percent borders around the line.
Finally, legend should be a string that can be used as the legend in the graph. That is, if legends are being printed.
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")
Unlike many other functions that do not care if they take a
column or a row vector, if specifying points as a vector of
complex values, due to possible ambiguities, it must always
be given as a column vector. Therefore, notice in the
last example the transpose of the vector 0:6
to make it into a column vector.
Available from version 1.0.18 onwards. Specifying
v
as a column vector of complex numbers is
implemented from version 1.0.22 and onwards.
LinePlotMouseLocation ()
Returns a row vector of a point on the line plot corresponding to
the current mouse location. If the line plot is not visible,
then prints an error and returns null
.
In this case you should run
LinePlot
or
LinePlotClear
to put the graphing window into the line plot mode.
See also
LinePlotWaitForClick
.
LinePlotParametric (xfonc,yfonc,...)
LinePlotParametric (xfonc,yfonc,t1,t2,tinc)
LinePlotParametric (xfonc,yfonc,t1,t2,tinc,x1,x2,y1,y2)
LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])
LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")
Trace la courbe d'une fonction paramétrique. En premier viennent les fonctions de x
et y
puis, en option, les limites de t
sous la forme t1,t2,tinc
puis, en option, les limites de la fenêtre de tracé sous la forme x1,x2,y1,y2
.
If x and y limits are not
specified, then the currently set limits apply
(See LinePlotWindow
).
If instead the string "fit" is given for the x and y limits, then the limits are the maximum extent of
the graph
Le paramètre LinePlotDrawLegends
conditionne l'affichage de la légende.
LinePlotWaitForClick ()
If in line plot mode, waits for a click on the line plot window
and returns the location of the click as a row vector.
If the window is closed
the function returns immediately with null
.
If the window is not in line plot mode, it is put in it and shown
if not shown.
See also
LinePlotMouseLocation
.
PlotCanvasFreeze ()
Freeze drawing of the canvas plot temporarily. Useful if you need to draw a bunch of elements
and want to delay drawing everything to avoid flicker in an animation. After everything
has been drawn you should call PlotCanvasThaw
.
The canvas is always thawed after end of any execution, so it will never remain frozen. The moment a new command line is shown for example the plot canvas is thawed automatically. Also note that calls to freeze and thaw may be safely nested.
Version 1.0.18 onwards.
PlotCanvasThaw ()
Thaw the plot canvas frozen by
PlotCanvasFreeze
and redraw the canvas immediately. The canvas is also always thawed after end of execution
of any program.
Version 1.0.18 onwards.
PlotWindowPresent ()
Show and raise the plot window, creating it if necessary. Normally the window is created when one of the plotting functions is called, but it is not always raised if it happens to be below other windows. So this function is good to call in scripts where the plot window might have been created before, and by now is hidden behind the console or other windows.
Version 1.0.19 onwards.
SlopefieldClearSolutions ()
Efface les solutions tracées par la fonction SlopefieldDrawSolution
.
SlopefieldDrawSolution (x, y, dx)
Lorsqu'un tracé de champ de directions est actif, dessine une solution avec les conditions initiales spécifiées. La méthode standard de Runge-Kutta est utilisée avec l'incrément dx
. Les solutions restent affichées sur le graphe jusqu'à ce qu'un tracé différent soit affiché ou jusqu'à ce que vous appeliez la fonction SlopefieldClearSolutions
. Vous pouvez aussi utiliser l'interface graphique pour tracer des solutions et indiquer des conditions initiales spécifiques avec la souris.
SlopefieldPlot (fonc)
SlopefieldPlot (fonc,x1,x2,y1,y2)
Trace un champ de directions. La fonction fonc
doit accepter deux nombres réels x
et y
ou seulement un nombre complexe. En option, vous pouvez indiquer les limites de la fenêtre de tracé comme x1
, x2
, y1
, y2
. Si les limites ne sont pas indiquées alors les limites actuellement utilisées s'appliquent (consultez LinePlotWindow
).
Le paramètre LinePlotDrawLegends
conditionne l'affichage de la légende.
Examples:
genius>
SlopefieldPlot(`(x,y)=sin(x-y),-5,5,-5,5)
SurfacePlot (fonc)
SurfacePlot (fonc,x1,x2,y1,y2,z1,z2)
SurfacePlot (func,x1,x2,y1,y2)
SurfacePlot (func,[x1,x2,y1,y2,z1,z2])
SurfacePlot (func,[x1,x2,y1,y2])
Plot a surface function that takes either two arguments or a complex number. First comes the function then optionally limits as x1
, x2
,
y1
, y2
,
z1
, z2
. If limits are not
specified, then the currently set limits apply
(See SurfacePlotWindow
).
Genius can only plot a single surface function at this time.
If the z limits are not specified then the maxima and minima of the function are used.
Exemples :
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 ()
Show the surface plot window and clear out functions and any other lines that were drawn.
Available in version 1.0.19 and onwards.
SurfacePlotData (data)
SurfacePlotData (data,label)
SurfacePlotData (data,x1,x2,y1,y2,z1,z2)
SurfacePlotData (data,label,x1,x2,y1,y2,z1,z2)
SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])
SurfacePlotData (data,label,[x1,x2,y1,y2,z1,z2])
Plot a surface from data. The data is an n by 3 matrix whose rows are the x, y and z coordinates. The data can also be simply a vector whose length is a multiple of 3 and so contains the triples of x, y, z. The data should contain at least 3 points.
Optionally we can give the label and also optionally the
limits. If limits are not given, they are computed from
the data, SurfacePlotWindow
is not used, if you want to use it, pass it in explicitly.
If label is not given then empty label is used.
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 onwards.
SurfacePlotDataGrid (data,[x1,x2,y1,y2])
SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])
SurfacePlotDataGrid (data,[x1,x2,y1,y2],label)
SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],label)
Plot a surface from regular rectangular data.
The data is given in a n by m matrix where the rows are the
x coordinate and the columns are the y coordinate.
The x coordinate is divided into equal n-1 subintervals
and y coordinate is divided into equal m-1 subintervals.
The limits x1
and x2
give the interval on the x-axis that we use, and
the limits y1
and y2
give the interval on the y-axis that we use.
If the limits z1
and z2
are not given they are computed from the data (to be
the extreme values from the data).
Optionally we can give the label, if label is not given then empty label is used.
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 onwards.
SurfacePlotDrawLine (x1,y1,z1,x2,y2,z2,...)
SurfacePlotDrawLine (v,...)
Draw a line from x1
,y1
,z1
to
x2
,y2
,z2
.
x1
,y1
,z1
,
x2
,y2
,z2
can be replaced by an
n
by 3 matrix for a longer polyline.
Extra parameters can be added to specify line color, thickness,
the plotting window, or legend.
You can do this by adding an argument string "color"
,
"thickness"
,
"window"
,
or "legend"
, and after it specify
the color, the thickness, the window
as 6-vector, or the legend.
The color should be either a string indicating the common English word for the color
that GTK will recognize such as
"red"
, "blue"
, "yellow"
, etc...
Alternatively the color can be specified in RGB format as
"#rgb"
, "#rrggbb"
, or
"#rrrrggggbbbb"
, where the r, g, or b are hex digits of the red, green, and blue
components of the color. Finally, since version 1.0.18, the color
can also be specified as a real vector specifying the red green and
blue components where the components are between 0 and 1, e.g. [1.0,0.5,0.1]
.
The window should be given as usual as [x1,x2,y1,y2,z1,z2]
, or
alternatively can be given as a string
"fit"
in which case,
the x range will be set precisely and the y range will be set with
five percent borders around the line.
Finally, legend should be a string that can be used as the legend in the graph. That is, if legends are being printed.
Examples:
genius>
SurfacePlotDrawLine(0,0,0,1,1,1,"color","blue","thickness",3)
genius>
SurfacePlotDrawLine([0,0,0;1,-1,2;-1,-1,-3])
Available from version 1.0.19 onwards.
SurfacePlotDrawPoints (x,y,z,...)
SurfacePlotDrawPoints (v,...)
Draw a point at x
,y
,z
.
The input can be an n
by 3 matrix
for n
different points. This function has essentially the same
input as SurfacePlotDrawLine.
Extra parameters can be added to specify line color, thickness,
the plotting window, or legend.
You can do this by adding an argument string "color"
,
"thickness"
,
"window"
,
or "legend"
, and after it specify
the color, the thickness, the window
as 6-vector, or the legend.
The color should be either a string indicating the common English word for the color
that GTK will recognize such as
"red"
, "blue"
, "yellow"
, etc...
Alternatively the color can be specified in RGB format as
"#rgb"
, "#rrggbb"
, or
"#rrrrggggbbbb"
, where the r, g, or b are hex digits of the red, green, and blue
components of the color. Finally the color can also be specified as a real vector specifying the red green
and blue components where the components are between 0 and 1.
The window should be given as usual as [x1,x2,y1,y2,z1,z2]
, or
alternatively can be given as a string
"fit"
in which case,
the x range will be set precisely and the y range will be set with
five percent borders around the line.
Finally, legend should be a string that can be used as the legend in the graph. That is, if legends are being printed.
Examples:
genius>
SurfacePlotDrawPoints(0,0,0,"color","blue","thickness",3)
genius>
SurfacePlotDrawPoints([0,0,0;1,-1,2;-1,-1,1])
Available from version 1.0.19 onwards.
VectorfieldClearSolutions ()
Efface les solutions dessinées par la fonction VectorfieldDrawSolution
.
Version 1.0.6 onwards.
VectorfieldDrawSolution (x, y, dt, tlong)
Lorsqu'un tracé de champ de vecteurs est actif, dessine une solution avec les conditions initiales spécifiées. La méthode standard de Runge-Kutta est utilisée avec l'incrément dt
sur un intervalle de temps tlong
. Les solutions restent affichées sur le graphe jusqu'à ce qu'un tracé différent soit affiché ou jusqu'à ce que vous appeliez la fonction VectorfieldClearSolutions
. Vous pouvez aussi utiliser l'interface graphique pour tracer des solutions et indiquer des conditions initiales spécifiques avec la souris.
Version 1.0.6 onwards.
VectorfieldPlot (foncx, foncy)
VectorfieldPlot (foncx, foncy, x1, x2, y1, y2)
Trace un champ de vecteurs à deux dimensions. La fonction funcx
doit être la dérivée dx/dt du champ de vecteurs et la fonction funcy
la dérivée dy/dt du champ de vecteurs. Les fonctions doivent accepter deux nombres réels x
et y
ou seulement un nombre complexe. Lorsque le paramètre VectorfieldNormalized
est true
(vrai) alors l'amplitude des vecteurs est normalisée. Seule la direction et non pas l'amplitude est tracée.
Vous pouvez spécifier, en option, les limites de la fenêtre de tracé sous la forme x1
, x2
, y1
, y2
, z1
, z2
. Si les limites ne sont pas indiquées alors les limites actuellement utilisées s'appliquent (consultez LinePlotWindow
).
Le paramètre LinePlotDrawLegends
conditionne l'affichage de la légende.
Exemples :
genius>
VectorfieldPlot(`(x,y)=x^2-y, `(x,y)=y^2-x, -1, 1, -1, 1)