how graficos graficas graficar font coordenadas change python matplotlib

python - graficos - plot title font size matplotlib



Creación de subparcelas cuadradas(de igual altura y ancho) en matplotlib (2)

Prueba esto:

from pylab import * figure() ax1 = subplot(121, autoscale_on=False, aspect=''equal'', xlim=[1,3], ylim=[1,3]) plot([1, 2, 3], [1, 2, 3]) ##axes().set_aspect(''equal'') ax2 = subplot(122, autoscale_on=False, aspect=''equal'', xlim=[1,3], ylim=[1,3]) plot([1, 2, 3], [1, 2, 3]) draw() show()

Comenté la línea de axes() ya que eso crearía un nuevo axes en una ubicación arbitraria, en lugar de una subplot prefabricada con una posición calculada.

La subplot llamada en realidad crea una instancia de Axes , lo que significa que puede usar las mismas propiedades que la de un Axes .

Espero que esto ayude :)

Cuando ejecuto este código

from pylab import * figure() ax1 = subplot(121) plot([1, 2, 3], [1, 2, 3]) subplot(122, sharex=ax1, sharey=ax1) plot([1, 2, 3], [1, 2, 3]) draw() show()

Obtengo dos subtramas que están "aplastadas" en la dimensión X. ¿Cómo obtengo estas subtramas de modo que la altura del eje Y sea igual al ancho del eje X, para ambas subtramas?

Estoy usando matplotlib v.0.99.1.2 en Ubuntu 10.04.

Actualización 2010-07-08 : Veamos algunas cosas que no funcionan.

Después de buscar en Google todo el día, pensé que podría estar relacionado con el escalado automático. Así que traté de jugar con eso.

from pylab import * figure() ax1 = subplot(121, autoscale_on=False) plot([1, 2, 3], [1, 2, 3]) subplot(122, sharex=ax1, sharey=ax1) plot([1, 2, 3], [1, 2, 3]) draw() show()

matplotlib insiste en escalar automáticamente.

from pylab import * figure() ax1 = subplot(121, autoscale_on=False) plot([1, 2, 3], [1, 2, 3]) subplot(122, sharex=ax1, sharey=ax1, autoscale_on=False) plot([1, 2, 3], [1, 2, 3]) draw() show()

En este caso, los datos desaparecen por completo. WTF, matplotlib? ¿Solo WTF?

De acuerdo, bueno, ¿tal vez si arreglamos la relación de aspecto?

from pylab import * figure() ax1 = subplot(121, autoscale_on=False) plot([1, 2, 3], [1, 2, 3]) axes().set_aspect(''equal'') subplot(122, sharex=ax1, sharey=ax1) plot([1, 2, 3], [1, 2, 3]) draw() show()

Este hace que la primera subparcela desaparezca por completo. ¡Eso es hilarante! ¿A quién se le ocurrió eso?

Con toda seriedad, ahora ... ¿debería ser realmente tan difícil de lograr?


Su problema al establecer el aspecto de las parcelas está llegando cuando usa sharex y sharey.

Una solución alternativa es simplemente no utilizar ejes compartidos. Por ejemplo, podrías hacer esto:

from pylab import * figure() subplot(121, aspect=''equal'') plot([1, 2, 3], [1, 2, 3]) subplot(122, aspect=''equal'') plot([1, 2, 3], [1, 2, 3]) show()

Sin embargo, una solución mejor es cambiar la combinación de teclas "ajustable" ... Quiere ajustar = ''caja'', pero cuando usa ejes compartidos, tiene que ser ajustable = ''datalim'' (y volver a configurarlo '' ''da un error).

Sin embargo, hay una tercera opción para adjustable para manejar exactamente este caso: adjustable="box-forced" .

Por ejemplo:

from pylab import * figure() ax1 = subplot(121, aspect=''equal'', adjustable=''box-forced'') plot([1, 2, 3], [1, 2, 3]) subplot(122, aspect=''equal'', adjustable=''box-forced'', sharex=ax1, sharey=ax1) plot([1, 2, 3], [1, 2, 3]) show()

O en un estilo más moderno (nota: esta parte de la respuesta no habría funcionado en 2010):

import matplotlib.pyplot as plt fig, axes = plt.subplots(ncols=2, sharex=True, sharey=True) for ax in axes: ax.plot([1, 2, 3], [1, 2, 3]) ax.set(adjustable=''box-forced'', aspect=''equal'') plt.show()

De cualquier manera, obtendrás algo similar a: