Dibujar
Anterior | Capítulo 11. Lista de funciones GEL | Siguiente

## Dibujar

ExportPlot

      ExportPlot (archivo,tipo)

      ExportPlot (archivo)

  Exportar el contenido de la ventana de dibujado a un archivo. El tipo es una cadena que especifica el tipo de archivo que usar, «png», «eps» o «ps». Si no se especifica el tipo, se toma a partir de la extensión, en cuyo caso debe ser«.png», «.eps» o «.ps».

  Tenga en cuneta que los archivos se sobreescriben sin preguntar.

  Al exportar correctamente, se devuelve. Si falla algo, se muestra un error y se eleva una excepción.

  Ejemplos:

      genius> ExportPlot("archivo.png")
      genius> ExportPlot("/carpeta/archivo","eps")

  Desde la versión 1.0.16 en adelante.

LinePlot

      LinePlot (func1,func2,func3,...)

      LinePlot (func1,func2,func3,x1,x2)

      LinePlot (func1,func2,func3,x1,x2,y1,y2)

      LinePlot (func1,func2,func3,[x1,x2])

      LinePlot (func1,func2,func3,[x1,x2,y1,y2])

  Dibujar una función (o varias funciones) con una línea. Los 10 primeros argumentos son funciones, entonces opcionalmente puede especificar los límites de las gráficas como `x1`, `x2`, `y1`, `y2`. Si no se especifican los límites, entonces se aplican los límites actuales (Consulte `LinePlotWindow`). Si no se especifican los límites de y, las funciones se calculan y se usan las áreas máxima y mínima.

  El parámetro `LinePlotDrawLegends` controla el dibujado de la leyenda.

  Ejemplos:

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

LinePlotClear

      LinePlotClear ()

  Muestra la ventana de dibujo lineal y limpia las funciones y otras líneas que se hubiesen dibujado.

LinePlotCParametric

      LinePlotCParametric (func,...)

      LinePlotCParametric (func,t1,t2,tinc)

      LinePlotCParametric (func,t1,t2,tinc,x1,x2,y1,y2)

  Dibujar una función valorada paramétrica compleja con una línea. Primero vienen las funciones que devuelven `x+iy`, luego, opcionalmente, los `t` límites como `t1,t2,tinc`, y límites como `x1,x2,y1,y2`.

  Si los límites no se especifican, entonces se aplican las configuraciones actuales (Consulte `LinePlotWindow`). Si en lugar de la cadena se da el valor «fit» para los límites x e y, los límites son la medida máxima de la gráfica.

  El parámetro `LinePlotDrawLegends` controla el dibujado de la leyenda.

LinePlotDrawLine

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

      LinePlotDrawLine (v,...)

  Dibuja una línea desde `x1`,`y1` a `x2`,`y2`. Es posible reemplazar `x1`,`y1`, `x2`,`y2` por una matriz de `n` por 2 para obtener una curva poligonal de mayor longitud. También el vector `v` puede ser un vector columna de números complejos, esto es una matriz `n` por 1 y cada número complejo se considera un punto en el plano.

  Se pueden añadir parámetros adicionales para especificar el color de la línea, ancho, flechas, ventanas de dibujado o leyendas. Puede modificarlo añadiendo un valor a `«color»`, `«ancho»`, `«ventana»`, `«flecha»`, o `«leyenda»`, y después especificar su color, la anchura, la ventana como 4 vectores, tipo de flecha, o la leyenda. (Flecha y ventana están desde la versión 1.0.6 y posteriores.)

  Si la línea se considera como un polígono relleno, relleno con el color dado, se puede especificar el argumento `«llenado»`. Desde la versión 1.0.22 en adelante.

  La denominación del color debe ser una cadena que identifique al color según el diccionario inglés que GTK reconocerá como `«red»`, `«blue»`, `«yellow»`, etc... De forma alternativa el color se puede especificar en formato RGB como por ejemplo `«#rgb»`, `«#rrggbb»`, o `«#rrrrggggbbbb»`, donde r, g, o b son dígitos hexadecimales de los colores rojo, verde y azul (red, green, blue) . Finalmente, desde la versión 1.0.18, los colores se pueden especificar como vectores siendo el rojo, verde y azul componentes con valores que solo pueden ser 0 o 1. Por ejemplo: `[1.0,0.5,0.1]`.

  Los valores de entrada de la ventana deben ser del tipo `[x1,x2,y1,y2]`, o bien, pueden ser una cadena `«ajuste»`, en cualquier caso, el rango de x se establecerá con precisión y el rango y se puede ajustar con cinco por ciento alrededor del borde de la línea.

  La especificación para la flecha debería ser `«origen»`, `«fin»`, `«ambos»`, o `«ninguno»`.

  Finalmente, la leyenda debería ser una cadena que se pueda utilizar como leyenda en un gráfico. Es decir, si se imprimen las leyendas.

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

  A diferencia de muchas otras funciones que no les importa si toman una columna o un vector fila, si se especifican puntos como un vector de valores complejos, debido a las posibles ambigüedades, es preferible que sea un vector columna.

  La especificación de `v` como un vector columna de números complejos, se implementa desde la versión 1.0.22 en adelante.

LinePlotDrawPoints

      LinePlotDrawPoints (x,y,...)

      LinePlotDrawPoints (v,...)

  Dibuja un punto en `x`,`y`. La entrada puede ser una matriz `n` por 2 para `n` puntos diferentes. Esta función es esencialmente la misma entrada que LinePlotDrawLine. De forma alternativa, el vector `v` puede ser un vector columna de números complejos, esto es una matriz `n` por 1 y cada número complejo se considera un punto en el plano.

  Se pueden añadir parámetros adicionales para especificar el color, ancho, ventanas de dibujado o leyendas. Puede modificarlo añadiendo la palabra `«color»`, `«ancho»`, `«ventana»`, o `«leyenda»`, y después especificar su color, la anchura, la ventana como 4 vectores, o la leyenda.

  La denominación del color debe ser una cadena que identifique al color según el diccionario inglés que GTK reconocerá como `«red»`, `«blue»`, `«yellow»`, etc... De forma alternativa el color se puede especificar en formato RGB como por ejemplo `«#rgb»`, `«#rrggbb»`, o `«#rrrrggggbbbb»`, donde r, g, o b son dígitos hexadecimales de los colores rojo, verde y azul (red, green, blue) . Finalmente los colores se pueden especificar como vectores siendo el rojo, verde y azul componentes con valores que solo pueden ser 0 o 1.

  Los valores de entrada de la ventana deben ser del tipo `[x1,x2,y1,y2]`, o bien, pueden ser una cadena `«ajuste»`, en cualquier caso, el rango de x se establecerá con precisión y el rango y se puede ajustar con cinco por ciento alrededor del borde de la línea.

  Finalmente, la leyenda debería ser una cadena que se pueda utilizar como leyenda en un gráfico. Es decir, si se imprimen las leyendas.

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

  A diferencia de muchas otras funciones que no les importa si toman una columna o un vector fila, si se especifica los puntos como un vector de valores complejos, debido a las posibles ambigüedades, siempre debe ser suministrado como un vector columna. Por lo tanto, la notificación en el último ejemplo la transpuesta del vector `0: 6 userinput> para convertirlo en un vector columna.`

  Disponible desde la versión 1.0.18 en adelante. La especificación de `v` como un vector columna de números complejos, se implementa desde la versión 1.0.22 en adelante.

LinePlotMouseLocation

      LinePlotMouseLocation ()

  Devuelve un vector fila de un punto de la línea de la pantalla de dibujado correspondiente a la ubicación actual del ratón. Si la trama de línea no es visible, entonces imprime un error y devuelve `null constant>. En este caso se debe ejecutar LinePlot o LinePlotClear LinePlotClear`

LinePlotParametric

      LinePlotParametric (xfunc,yfunc,...)

      LinePlotParametric (xfunc,yfunc,t1,t2,tinc)

      LinePlotParametric (xfunc,yfunc,t1,t2,tinc,x1,x2,y1,y2)

      LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])

      LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")

  Dibujar una función paramétrica con una línea. Primero vienen las funciones para `x` e `y` luego opcionalmente los `t` límites como `t1,t2,tinc`, y luego, opcionalmente, los límites como `x1,x2,y1,y2`.

  Si no se especifican los límites x e y, entonces se aplican las configuraciones actuales (Consulte `LinePlotWindow`). Si en lugar de la cadena se da el valor «fit» para los límites x e y, los límites son la medida máxima de la gráfica.

  El parámetro `LinePlotDrawLegends` controla el dibujado de la leyenda.

LinePlotWaitForClick

      LinePlotWaitForClick ()

  Si está en el modo de dibujado de lineas, espera por un clic en la ventana de dibujado de lineas y devuelve la ubicación del clic como un vector fila. Si se cierra la ventana de la función devuelve inmediatamente con `null`. Si la ventana no está en modo de dibujado de lineas, esta se pone de forma automática. Consulte también `LinePlotMouseLocation`.

PlotCanvasFreeze

      PlotCanvasFreeze ()

  Congela el dibujo en el lienzo de dibujado de forma temporal. Esto es útil si necesita dibujar un grupo de elementos y quiere demorar el dibujado para no permitir el parpadeo de una animación. Después de terminar con el dibujo debería descongelar el lienzo de dibujado llamando a la función `PlotCanvasThaw`.

  El lienzo está siempre desbloqueado hasta el final de cualquier proceso, así que nunca permanece bloqueado. El momento en que se muestra una nueva línea de comandos, por ejemplo, el lienzo de dibujado se descongela automáticamente. También tenga en cuenta que las llamadas a congelar y descongelar puede anidarse de manera segura.

  Desde la versión 1.0.18 en adelante.

PlotCanvasThaw

      PlotCanvasThaw ()

  Descongela el lienzo de dibujado congelado por la función `PlotCanvasFreeze` y volver a dibujar el lienzo inmediatamente. El lienzo también se descongelará al finalizar la ejecución de cualquier programa.

  Desde la versión 1.0.18 en adelante.

PlotWindowPresent

      PlotWindowPresent ()

  Muestra y eleva la ventana de dibujo, creándola si es necesario. Normalmente, la ventana se crea cuando se invoca a una de las funciones de dibujo, pero no siempre la eleva si está debajo de otra ventana. Esta función es buena para utilizar en un archivo de órdenes llamado «script» en inglés, donde la ventana de dibujo ha sido creada anteriormente, y por ahora, oculta detrás de la consola u otras ventanas.

  Desde la versión 1.0.19 en adelante.

SlopefieldClearSolutions

      SlopefieldClearSolutions ()

  Borra las soluciones elaboradas por la función `SlopefieldDrawSolution`.

SlopefieldDrawSolution

      SlopefieldDrawSolution (x, y, dx)

  Cuando un campo de dibujo de gráficas está activo, dibuja una solución con las condiciones iniciales especificas. El método estándar de Runge-Kutta se usa con incremento `dx`. Las soluciones permanecen en la gráfica hasta que se muestre un dibujo diferente o se llame a `SlopefieldClearSolutions`. También puede utilizar la interfaz gráfica para dibujar soluciones y especificar las condiciones iniciales con el ratón.

SlopefieldPlot

      SlopefieldPlot (func)

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

  Dibujar un campo inclinado. La función `func` tomará dos números reales `x` e `y`, o un número complejo. De manera opcional se especificarán los límites de la ventana de dibujo con `x1`, `x2`, `y1`, `y2`. Si no se especifica ningún límite, se aplicarán los que estén configurados actualmente (Consulte `LinePlotWindow`).

  El parámetro `LinePlotDrawLegends` controla el dibujado de la leyenda.

  Ejemplos:

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

SurfacePlot

      SurfacePlot (func)

      SurfacePlot (func,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])

  Dibujar una función superficial que tome entre dos argumentos o un número complejo. Primero vienen las funciones que las limitan de forma opcional `x1`, `x2`, `y1`, `y2`, `z1`, `z2`. Si no se especifican los límites, entonces las configuraciones actuales se aplicarán (Consulte `SurfacePlotWindow`). Genius sólo puede dibujar una función superficial sencilla por el momento.

  Si no se especifican los límites de z, se usan los valores máximo y mínimo de la función.

  Ejemplos:

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

  Muestra la ventana de dibujo lineal y limpia las funciones y otras líneas que se hubiesen dibujado.

  Disponible en la versión 1.0.19 y posteriores.

SurfacePlotData

      SurfacePlotData (datos)

      SurfacePlotData (datos,etiqueta)

      SurfacePlotData (datos,x1,x2,y1,y2,z1,z2)

      SurfacePlotData (datos,etiqueta,x1,x2,y1,y2,z1,z2)

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

      SurfacePlotData (datos,etiqueta,[x1,x2,y1,y2,z1,z2])

  Dibujar una superficie a partir de los datos. Los datos son una matriz de n x 3 cuyas filas son las coordenadas x, y, z. Los datos pueden ser un vector cuya longitud sea múltiplo de 3 y que contenga los triples de x, y z. Los datos deben contener al menos 3 puntos.

  Opcionalmente, se pueden indicar una etiqueta y los límites. Si no se indican los límites, se calculan a partir de los datos, no se usa `SurfacePlotWindow` pero, si quiere usarla, debe pasarla explícitamente. Si no se indica una etiqueta, se usa una etiqueta vacía.

  Ejemplos:

      genius> SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])
      genius> SurfacePlotData(datos,"Mis datos")
      genius> SurfacePlotData(datos,-1,1,-1,1,0,10)
      genius> SurfacePlotData(datos,SurfacePlotWindow)

  Esto es un ejemplo de cómo dibujar con coordenadas polares, en particular, cómo dibujar la función `-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)

  Desde la versión 1.0.16 en adelante.

SurfacePlotDataGrid

      SurfacePlotDataGrid (datos,[x1,x2,y1,y2])

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

      SurfacePlotDataGrid (datos,[x1,x2,y1,y2],etiqueta)

      SurfacePlotDataGrid (datos,[x1,x2,y1,y2,z1,z2],etiqueta)

  Dibujar una superficie a partir de datos rectangulares regulares. Los datos se dan en una matriz matriz de n x m donde las filas son la coordenada x y las columnas son la coordenada y. La coordenada x se divide en n-1 subintervalos iguales y la coordenada y se divide en m-1 subintervalos iguales. Los límites `x1` y `x2` dan el intervalo en el eje x usado y los límites `y1` e `y2` dan el intervalo en el eje y usado. Si los límites `z1` y `z2` no se indican, se calculan a partir de los datos (para obtener valores extremos de los datos).

  Opcionalmente se puede indicar la etiqueta; si no se indica ninguna, se unas una etiqueta vacía.

  Ejemplos:

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

  Desde la versión 1.0.16 en adelante.

SurfacePlotDrawLine

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

      SurfacePlotDrawLine (v,...)

  Dibuja una línea desde `x1`,`y1`,`z1` hasta `x2`,`y2`,`z2`. `x1`,`y1`,`z1`, `x2`,`y2`,`z2` se puede reemplazar por una matriz de `n` por 3 para obtener una curva poligonal de mayor longitud.

  Se pueden añadir parámetros adicionales para especificar el color de la línea, ancho, ventanas de dibujado o leyendas. Puede modificarlo añadiendo un valor a `«color»`, `«ancho»`, `«ventana»`,o `«leyenda»`, y después especificar su color, la anchura, la ventana como 6 vectores, o la leyenda.

  La denominación del color debe ser una cadena que identifique al color según el diccionario inglés que GTK reconocerá como `«red»`, `«blue»`, `«yellow»`, etc... De forma alternativa el color se puede especificar en formato RGB como por ejemplo `«#rgb»`, `«#rrggbb»`, o `«#rrrrggggbbbb»`, donde r, g, o b son dígitos hexadecimales de los colores rojo, verde y azul (red, green, blue) . Finalmente, desde la versión 1.0.18, los colores se pueden especificar como vectores siendo el rojo, verde y azul componentes con valores que solo pueden ser 0 o 1. Por ejemplo: `[1.0,0.5,0.1]`.

  Los valores de entrada de la ventana deben ser del tipo `[x1,x2,y1,y2,z1,z2]`, o bien, pueden ser una cadena `«ajuste»`, en cualquier caso, el rango de x se establecerá con precisión y el rango y se puede ajustar con cinco por ciento alrededor del borde de la línea.

  Finalmente, la leyenda debería ser una cadena que se pueda utilizar como leyenda en un gráfico. Es decir, si se imprimen las leyendas.

  Ejemplos:

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

  Disponible desde la versión 1.0.19 en adelante.

SurfacePlotDrawPoints

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

      SurfacePlotDrawPoints (v,...)

  Dibuja un punto en `x`,`y`,`z`. La entrada puede ser una `n` por 3 matriz para `n` puntos diferentes. Esta función es esencialmente la misma entrada que SurfacePlotDrawLine.

  Se pueden añadir parámetros adicionales para especificar el color de la línea, ancho, ventanas de dibujado o leyendas. Puede modificarlo añadiendo un valor a `«color»`, `«ancho»`, `«ventana»`,o `«leyenda»`, y después especificar su color, la anchura, la ventana como 6 vectores, o la leyenda.

  La denominación del color debe ser una cadena que identifique al color según el diccionario inglés que GTK reconocerá como `«red»`, `«blue»`, `«yellow»`, etc... De forma alternativa el color se puede especificar en formato RGB como por ejemplo `«#rgb»`, `«#rrggbb»`, o `«#rrrrggggbbbb»`, donde r, g, o b son dígitos hexadecimales de los colores rojo, verde y azul (red, green, blue) . Finalmente los colores se pueden especificar como vectores siendo el rojo, verde y azul componentes con valores que solo pueden ser 0 o 1.

  Los valores de entrada de la ventana deben ser del tipo `[x1,x2,y1,y2,z1,z2]`, o bien, pueden ser una cadena `«ajuste»`, en cualquier caso, el rango de x se establecerá con precisión y el rango y se puede ajustar con cinco por ciento alrededor del borde de la línea.

  Finalmente, la leyenda debería ser una cadena que se pueda utilizar como leyenda en un gráfico. Es decir, si se imprimen las leyendas.

  Ejemplos:

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

  Disponible desde la versión 1.0.19 en adelante.

VectorfieldClearSolutions

      VectorfieldClearSolutions ()

  Limpia las soluciones realizadas por la función `VectorfieldDrawSolution`.

  Desde la versión 1.0.16 en adelante.

VectorfieldDrawSolution

      VectorfieldDrawSolution (x, y, dt, tlen)

  Cuando un campo de dibujo vectorial está activo, dibuja una solución con las condición específica inicial. El método estándar de Runge-Kutta se utiliza con incremento `dt` para un intervalo de longitud `tlen`. Las soluciones permanecen en la gráfica hasta que se muestra un dibujo diferente o hasta que se llama a `VectorfieldClearSolutions`. Puede también utilizar la gráfica para dibujar soluciones y especificar las condiciones iniciales con el ratón.

  Desde la versión 1.0.16 en adelante.

VectorfieldPlot

      VectorfieldPlot (funcx, funcy)

      VectorfieldPlot (funcx, funcy, x1, x2, y1, y2)

  Dibujar un vector bidimensional. La función `funcx` será la dx/dt del campo vectorial y la función `funcy` la dy/dt del campo vectorial. Las funciones tomarán dos números reales `x` e `y`, o un simple número complejo. Cuando el parámetro `VectorfieldNormalized` es `true`, la magnitud de los vectores se normaliza. Es decir, sólo se muestra la dirección y no la magnitud.

  De manera opcional puede especificar los límites de la ventana de dibujo como `x1`, `x2`, `y1`, `y2`. Si no se especifican los límites, entonces se aplicará los actuales (Consulte `LinePlotWindow`).

  El parámetro `LinePlotDrawLegends` controla el dibujado de la leyenda.

  Ejemplos:

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

Anterior | Subir | Siguiente
Operaciones simbólicas | Inicio | Capítulo 12. Programas de ejemplo en GEL