Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema04

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
Próxima revisión Ambos lados, revisión siguiente
clase:iabd:pia:1eval:tema04 [2023/04/17 21:24]
admin [Proyecciones]
clase:iabd:pia:1eval:tema04 [2023/11/23 07:47]
admin [Personalización]
Línea 285: Línea 285:
 {{:clase:iabd:pia:1eval:figure_proyecciones.png|}} {{:clase:iabd:pia:1eval:figure_proyecciones.png|}}
  
 +
 +==== Clase Figura ====
 +La siguiente clase permite simplificar la creación de ''Axes'' cuando queremos mostrar muchos en forma de matriz con varias columnas y muchas filas.
 +<sxh python>
 +class Figura:
 +  def __init__(self,ncols,naxes,axes_width=6, height_axes=None):
 +    self.ncols=ncols
 +    self.num_axes=naxes
 +    self.nrows=math.ceil(naxes/ncols)
 +    if height_axes==None:
 +      height_axes=axes_width*0.86
 +
 +    self.figure, self.arr_axes = plt.subplots(ncols=self.ncols, nrows=self.nrows, figsize=(axes_width*self.ncols,height_axes*self.nrows),
 +                        layout="constrained")
 +
 +    if isinstance(self.arr_axes, (list, tuple, np.ndarray))==False:
 +      self.arr_axes=np.array([[self.arr_axes]])
 +
 +    for axes in np.array(self.arr_axes).reshape(-1):
 +      self._visible_axes(axes,False)
 +
 +  def get_figure(self):
 +    return self.figure
 +
 +  def get_axes(self,index):
 +    col=index % self.ncols
 +    row=math.ceil((index+1)/self.ncols)-1
 +    axes=self.arr_axes[row,col]
 +    self._visible_axes(axes,True)
 +    return axes
 +
 +  def _visible_axes(self,axes,visible):
 +    axes.get_xaxis().set_visible(visible)
 +    axes.get_yaxis().set_visible(visible)
 +    axes.spines['right'].set_visible(visible)
 +    axes.spines['top'].set_visible(visible)
 +    axes.spines['left'].set_visible(visible)
 +    axes.spines['bottom'].set_visible(visible)
 +</sxh>
 +
 +
 +El uso de la clase es la siguiente. 
 +
 +Imagina que quieres mostrar 10 ''Axes'' en 3 columnas y luego obtiene cada uno de los axes. 
 +
 +<sxh python>
 +figura=Figura(ncols=3,naxes=10)
 +
 +for index in range(0,10):
 +  axes=figura.get_axes(index)
 +</sxh>
 +
 +
 +La ventaja de esta clase es que no te tienes que preocupar del número de filas que va a haber.
 ===== Dibujando en 2D ===== ===== Dibujando en 2D =====
 Ahora veamos una serie de métodos para dibujar en un ''Axes'' o gráfica en 2 dimensiones Ahora veamos una serie de métodos para dibujar en un ''Axes'' o gráfica en 2 dimensiones
Línea 888: Línea 942:
  
 {{:clase:iabd:pia:1eval:ejemplo_spines.png|}} {{:clase:iabd:pia:1eval:ejemplo_spines.png|}}
 +
 +  * Hacer que los ejes estén en el orden //Z// más hacía el fondo:
 +
 +<sxh python>
 +axes.set_axis_below(True)
 +</sxh>
  
 ==== Superficies ==== ==== Superficies ====
clase/iabd/pia/1eval/tema04.txt · Última modificación: 2024/05/11 14:01 por admin