¿Cómo cambio el tamaño de mi imagen para que sea adecuada para imprimir?
Por ejemplo, me gustaría usar para papel A4, cuyas dimensiones son 11.7 pulgadas por 8.27 pulgadas en orientación horizontal.
Debe crear los objetos Matplotlib Figure y Axes con anticipación, especificando qué tan grande es la figura:
from matplotlib import pyplot
import seaborn
import mylib
a4_dims = (11.7, 8.27)
df = mylib.load_data()
fig, ax = pyplot.subplots(figsize=a4_dims)
seaborn.violinplot(ax=ax, data=df, **violin_options)
sns.lmplot()
height
yaspect
como se explica aquí stackoverflow.com/a/51602446/2412831También puede establecer el tamaño de la figura pasando el diccionario al
rc
parámetro con la clave'figure.figsize'
en elset
método seaborn :Otra alternativa puede ser utilizar
figure.figsize
dercParams
establecer tamaño de figura a continuación:Se pueden encontrar más detalles en la documentación de matplotlib
fuente
.set()
antes.set_style()
Puede establecer el contexto para ser
poster
o establecer manualmentefig_size
.fuente
sns.lmplot()
Tenga en cuenta que si está intentando pasar a un método de "nivel de figura" en seaborn (por ejemplo
lmplot
,catplot
/factorplot
,jointplot
) puede y debe especificar esto dentro de los argumentos usandoheight
yaspect
.Consulte https://github.com/mwaskom/seaborn/issues/488 y Plotting with seaborn utilizando la interfaz orientada a objetos matplotlib para obtener más detalles sobre el hecho de que los métodos de nivel de figura no obedecen las especificaciones de los ejes.
fuente
primero importe matplotlib y úselo para establecer el tamaño de la figura
fuente
Esto se puede hacer usando:
fuente
Esto también funcionará.
fuente
Para mi argumento (un diagrama de factor sns) la respuesta propuesta no funcionó bien.
Así uso
Justo después de la trama con seaborn (por lo que no es necesario pasar un hacha a seaborn o cambiar la configuración de rc).
fuente
python g = sns.FacetGrid(df.set_index('category'), col="id") pyplot.gcf().set_size_inches(11.7, 8.27) g.map(lambda data, color: data.plot.barh(color=color), "count")
sns.FacetGrid
que establecería un tamaño de figura de acuerdo con un valor calculado (establecido porheight
yaspect
) y cambiaría el tamaño de la figura directamente después de que el trazado marino nazca. Y puede ocurrir otro ajuste fino de la trama después de cambiar el tamaño de la figuraAdemás de la respuesta de elz con respecto a los métodos de "nivel de figura" que devuelven objetos de cuadrícula de múltiples gráficos , es posible establecer la altura y el ancho de la figura explícitamente (es decir, sin usar la relación de aspecto) utilizando el siguiente enfoque:
fuente
set_figwidth
yset_figheight
funcionan bien para objetos de cuadrícula. >>> import seaborn >>> import matplotlib.pyplot como pyplot >>> tips = seaborn.load_dataset ("tips") >>> g = seaborn.FacetGrid (tips, col = "time", row = "fumador") >>> g = g.map (pyplot.hist, "total_bill") >>> g.fig.set_figwidth (10) >>> g.fig.set_figheight (10)Las principales respuestas de Paul H y J. Li no funcionan para todo tipo de figuras nacidas en el mar. Para el
FacetGrid
tipo (por ejemplosns.lmplot()
), use el parámetrosize
yaspect
.Size
cambia tanto la altura como el ancho, manteniendo la relación de aspecto.Aspect
solo cambia el ancho, manteniendo la altura constante.Siempre puede obtener el tamaño deseado jugando con estos dos parámetros.
Crédito: https://stackoverflow.com/a/28765059/3901029
fuente