Como altero o tamanho da minha imagem para que ela seja adequada para impressão?
Por exemplo, eu gostaria de usar papel A4, cujas dimensões são 11,7 polegadas por 8,27 polegadas na orientação paisagem.
Como altero o tamanho da minha imagem para que ela seja adequada para impressão?
Por exemplo, eu gostaria de usar papel A4, cujas dimensões são 11,7 polegadas por 8,27 polegadas na orientação paisagem.
Respostas:
Você precisa criar os objetos Matplotlib Figure e Axes antes do tempo, especificando o tamanho da 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
e aspect
parâmetros como explicado aqui stackoverflow.com/a/51602446/2412831
Você também pode definir o tamanho da figura passando o dicionário para o rc
parâmetro com a tecla 'figure.figsize'
no set
método marítimo :
import seaborn as sns
sns.set(rc={'figure.figsize':(11.7,8.27)})
Outra alternativa pode ser a utilização figure.figsize
de rcParams
ao tamanho figura conjunto como a seguir:
from matplotlib import rcParams
# figure size in inches
rcParams['figure.figsize'] = 11.7,8.27
Mais detalhes podem ser encontrados na documentação do matplotlib
.set()
antes.set_style()
Você pode definir o contexto para ser poster
ou definir manualmente fig_size
.
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
np.random.seed(0)
n, p = 40, 8
d = np.random.normal(0, 2, (n, p))
d += np.log(np.arange(1, p + 1)) * -5 + 10
# plot
sns.set_style('ticks')
fig, ax = plt.subplots()
# the size of A4 paper
fig.set_size_inches(11.7, 8.27)
sns.violinplot(data=d, inner="points", ax=ax)
sns.despine()
fig.savefig('example.png')
sns.lmplot()
Observe que se você estiver tentando passar para um método de "nível de figura" no mar (por exemplo lmplot
, catplot
/ factorplot
, jointplot
) , poderá e deve especificar isso nos argumentos usando height
e aspect
.
sns.catplot(data=df, x='xvar', y='yvar',
hue='hue_bar', height=8.27, aspect=11.7/8.27)
Consulte https://github.com/mwaskom/seaborn/issues/488 e Plotagem com seaborn usando a interface orientada a objetos matplotlib para obter mais detalhes sobre o fato de que os métodos no nível de figura não obedecem às especificações dos eixos.
Isso também deve funcionar.
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,16))
sns.countplot(data=yourdata, ...)
Para o meu gráfico (um sns factorplot), a resposta proposta não funcionou bem.
Então eu uso
plt.gcf().set_size_inches(11.7, 8.27)
Logo após a trama com o mar (portanto, não há necessidade de passar um machado para o mar ou alterar as configurações de rc).
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 definiria um tamanho de figura de acordo com um valor calculado (definido por height
e aspect
) e a alteração do tamanho de figura diretamente após o funcionamento da plotagem por via marítima. E outro ajuste fino do enredo pode acontecer depois de alterar o tamanho da figura
Além da resposta elz referente aos métodos "nível de figura" que retornam objetos de grade com vários gráficos , é possível definir a altura e a largura da figura explicitamente (ou seja, sem usar a proporção) usando a seguinte abordagem:
import seaborn as sns
g = sns.catplot(data=df, x='xvar', y='yvar', hue='hue_bar')
g.fig.set_figwidth(8.27)
g.fig.set_figheight(11.7)
set_figwidth
e set_figheight
funciona bem para objetos de grade. >>> importar seaborn >>> importar matplotlib.pyplot como pyplot >>> dicas = seaborn.load_dataset ("dicas") >>> g = seaborn.FacetGrid (dicas, col = "hora", linha = "fumante") >>> g = g.map (pyplot.hist, "total_bill") >>> g.fig.set_figwidth (10) >>> g.fig.set_figheight (10)
As principais respostas de Paul H e J. Li não funcionam para todos os tipos de figuras marítimas. Para o FacetGrid
tipo (por exemplo sns.lmplot()
), use o parâmetro size
e aspect
.
Size
altera a altura e a largura, mantendo a proporção.
Aspect
apenas altera a largura, mantendo a altura constante.
Você sempre pode obter o tamanho desejado jogando com esses dois parâmetros.