tiempo real matrices graficos grafico graficas graficar barras matplotlib

real - Especifique el tamaño de la figura en centímetros en matplotlib



matplotlib python 3 (3)

AFIK matplotlib no tiene funciones de conversión.

Si a menudo necesitas convertir unidades, podrías considerar usar una pint . También ofrece soporte NumPy .

Para tu ejemplo podrías hacer algo como lo siguiente:

from pint import UnitRegistry ureg = UnitRegistry() width_cm, height_cm = (12.8 * ureg.centimeter, 9.6 * ureg.centimeter) width_inch, height_inch = (width_cm.to(ureg.inch), height_cm.to(ureg.inch)) figsize_inch = (width_inch.magnitude, height_inch.magnitude) fig = plt.figure(figsize=figsize_inch)

Me pregunto si puede especificar el tamaño de una figura en matplotlib en centímetro. En el momento escribo:

def cm2inch(value): return value/2.54 fig = plt.figure(figsize=(cm2inch(12.8), cm2inch(9.6)))

Pero ¿hay un enfoque nativo?


Esto no es una respuesta a una pregunta '''' ¿Existe una forma nativa? '''', pero creo que hay una forma más elegante:

def cm2inch(*tupl): inch = 2.54 if isinstance(tupl[0], tuple): return tuple(i/inch for i in tupl[0]) else: return tuple(i/inch for i in tupl)

Entonces uno puede emitir plt.figure(figsize=cm2inch(12.8, 9.6)) , que creo que es una forma mucho más limpia. La implementación también nos permite usar cm2inch((12.8, 9.6)) , que personalmente no prefiero, pero algunas personas pueden hacerlo.

EDITAR: Aunque no hay manera de hacer esto de forma nativa en este momento, encontré una discusión here .


He enviado una solicitud de extracción al repositorio matplotlib en GitHub para incluir las funciones set_size_cm y get_size_cm para las cifras ( https://github.com/matplotlib/matplotlib/pull/5104 )

Si se acepta, debería permitirle utilizar un enfoque nativo para la configuración de tamaño en centímetros.