Bagaimana cara mengubah ukuran gambar saya sehingga cocok untuk dicetak?
Sebagai contoh, saya ingin menggunakan kertas A4, yang dimensi 11,7 inci kali 8,27 inci dalam orientasi lanskap.
Anda harus membuat objek Gambar dan Sumbu matplotlib sebelumnya, menentukan seberapa besar angka tersebut:
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
danaspect
seperti yang dijelaskan di sini stackoverflow.com/a/51602446/2412831Anda juga dapat mengatur ukuran gambar dengan meneruskan kamus ke
rc
parameter dengan metode'figure.figsize'
seabornset
:Alternatif lain mungkin menggunakan
figure.figsize
darircParams
ukuran gambar set seperti di bawah ini:Rincian lebih lanjut dapat ditemukan di dokumentasi matplotlib
sumber
.set()
sebelumnya.set_style()
Anda dapat mengatur konteks menjadi
poster
atau diatur secara manualfig_size
.sumber
sns.lmplot()
Perhatikan bahwa jika Anda mencoba meneruskan ke metode "angka tingkat" di seaborn (misalnya
lmplot
,catplot
/factorplot
,jointplot
) Anda bisa dan harus menentukan ini dalam argumen menggunakanheight
danaspect
.Lihat https://github.com/mwaskom/seaborn/issues/488 dan Merencanakan dengan seaborn menggunakan antarmuka berorientasi objek matplotlib untuk detail lebih lanjut tentang fakta bahwa metode level figur tidak mematuhi spesifikasi sumbu.
sumber
pertama impor matplotlib dan gunakan untuk mengatur ukuran gambar
sumber
Ini dapat dilakukan dengan menggunakan:
sumber
Ini juga akan berfungsi.
sumber
Untuk plot saya (a sns factorplot) jawaban yang diajukan tidak berfungsi dengan baik.
Jadi saya gunakan
Tepat setelah plot dengan seaborn (jadi tidak perlu melewatkan kapak ke seaborn atau mengubah pengaturan rc).
sumber
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
akan mengatur ukuran gambar sesuai dengan nilai yang dihitung (ditetapkan olehheight
danaspect
) dan mengubah ukuran gambar langsung setelah plot seaborn akan bekerja. Dan penyempurnaan plot lainnya dapat terjadi setelah mengubah ukuran gambarSelain jawaban elz mengenai metode "angka", yang mengembalikan objek kotak multi-plot dimungkinkan untuk mengatur tinggi dan lebar angka secara eksplisit (tanpa menggunakan aspek rasio) menggunakan pendekatan berikut:
sumber
set_figwidth
danset_figheight
bekerja dengan baik untuk objek grid. >>> impor seaborn >>> impor matplotlib.pyplot sebagai pyplot >>> tips = seaborn.load_dataset ("tips") >>> g = seaborn.FacetGrid (kiat, col = "waktu", baris = "perokok") >>> g = g.map (pyplot.hist, "total_bill") >>> g.fig.set_figwidth (10) >>> g.fig.set_figheight (10)Jawaban teratas oleh Paul H dan J. Li tidak bekerja untuk semua jenis tokoh seaborn. Untuk
FacetGrid
tipe (misalnyasns.lmplot()
), gunakan parametersize
danaspect
.Size
mengubah ketinggian dan lebar, mempertahankan rasio aspek.Aspect
hanya mengubah lebar, menjaga ketinggian konstan.Anda selalu bisa mendapatkan ukuran yang diinginkan dengan bermain dengan dua parameter ini.
Kredit: https://stackoverflow.com/a/28765059/3901029
sumber