Pertanyaan Bagaimana Anda mengubah ukuran angka yang digambar dengan matplotlib?


Bagaimana Anda mengubah ukuran gambar yang digambar dengan matplotlib?


1099
2017-12-01 21:24


asal


Jawaban:


angka memberitahu Anda tanda panggilan:

from matplotlib.pyplot import figure
figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')

figure(figsize=(1,1)) akan membuat gambar inci demi inci, yang akan menjadi 80-oleh-80 piksel kecuali Anda juga memberikan argumen dpi yang berbeda.


673
2018-03-12 12:41



Jika Anda sudah mendapatkan sosok yang dibuat, Anda dapat dengan cepat melakukan ini:

fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('test2png.png', dpi=100)

Untuk menyebarkan perubahan ukuran ke jendela gui yang ada tambahkan forward=True

fig.set_size_inches(18.5, 10.5, forward=True)

530
2017-11-29 17:30



Catatan depresiasi:
  Sesuai dengan panduan Matplotlib resmi, penggunaan pylab modul tidak lagi direkomendasikan. Silakan mempertimbangkan menggunakan matplotlib.pyplot modul sebagai gantinya, seperti yang dijelaskan oleh jawaban yang lain ini.

Berikut ini tampaknya berfungsi:

from pylab import rcParams
rcParams['figure.figsize'] = 5, 10

Ini membuat lebar gambar 5 inci, dan tingginya 10 inci.

Kelas Gambar kemudian menggunakan ini sebagai nilai default untuk salah satu argumennya.


258
2017-12-01 21:28



Silakan coba kode sederhana sebagai berikut:

from matplotlib import pyplot as plt
plt.figure(figsize=(1,1))
x = [1,2,3]
plt.plot(x, x)
plt.show()

Anda perlu mengatur ukuran gambar sebelum Anda merencanakan.


152
2018-06-06 03:24



MENGGUNAKAN plt.rcParams

Ada juga solusi ini jika Anda ingin mengubah ukuran tanpa menggunakan lingkungan gambar. Jadi jika Anda menggunakan plt.plot() sebagai contoh.

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)

Ini sangat berguna ketika Anda merencanakan inline (misalnya dengan Notebook IPython).

Konversi menjadi cm

Itu figsize tupel menerima inci jadi jika Anda ingin mengaturnya dalam sentimeter Anda harus membagi mereka dengan 2.54 memiliki pandangan untuk pertanyaan ini.


124
2018-01-18 10:55



Tautan pertama di Google untuk 'matplotlib figure size' aku s MenyesuaikanImageSize (Google cache halaman).

Berikut skrip uji dari halaman di atas. Ini menciptakan test[1-3].png file dengan ukuran berbeda dari gambar yang sama:

#!/usr/bin/env python
"""
This is a small demo file that helps teach how to adjust figure sizes
for matplotlib

"""

import matplotlib
print "using MPL version:", matplotlib.__version__
matplotlib.use("WXAgg") # do this before pylab so you don'tget the default back end.

import pylab
import numpy as np

# Generate and plot some simple data:
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)

pylab.plot(x,y)
F = pylab.gcf()

# Now check everything with the defaults:
DPI = F.get_dpi()
print "DPI:", DPI
DefaultSize = F.get_size_inches()
print "Default size in Inches", DefaultSize
print "Which should result in a %i x %i Image"%(DPI*DefaultSize[0], DPI*DefaultSize[1])
# the default is 100dpi for savefig:
F.savefig("test1.png")
# this gives me a 797 x 566 pixel image, which is about 100 DPI

# Now make the image twice as big, while keeping the fonts and all the
# same size
F.set_size_inches( (DefaultSize[0]*2, DefaultSize[1]*2) )
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test2.png")
# this results in a 1595x1132 image

# Now make the image twice as big, making all the fonts and lines
# bigger too.

F.set_size_inches( DefaultSize )# resetthe size
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test3.png", dpi = (200)) # change the dpi
# this also results in a 1595x1132 image, but the fonts are larger.

Keluaran:

using MPL version: 0.98.1
DPI: 80
Default size in Inches [ 8.  6.]
Which should result in a 640 x 480 Image
Size in Inches [ 16.  12.]
Size in Inches [ 16.  12.]

Dua catatan:

  1. Komentar modul dan output yang sebenarnya berbeda.

  2. Jawaban ini memungkinkan dengan mudah untuk menggabungkan ketiga gambar dalam satu file gambar untuk melihat perbedaan ukuran.


66
2017-12-02 16:01



Jika Anda mencari cara untuk mengubah ukuran gambar di Pandas, Anda bisa melakukannya misalnya:

df['some_column'].plot(figsize=(10, 5))

dimana df adalah pangkalan data Pandas. Jika Anda ingin mengubah pengaturan default, Anda bisa melakukan hal berikut:

import matplotlib

matplotlib.rc('figure', figsize=(10, 5))

41
2017-09-29 12:54



Anda cukup menggunakan (dari matplotlib.figure.Figure):

fig.set_size_inches(width,height)

Mulai dari Matplotlib 2.0.0, perubahan pada kanvas Anda akan segera terlihat, seperti forward kata kunci default ke True.

Jika Anda ingin adil ubah lebarnya atau tinggi alih-alih keduanya, Anda dapat menggunakan

fig.set_figwidth(val) atau fig.set_figheight(val)

Ini juga akan segera memperbarui kanvas Anda, tetapi hanya di Matplotlib 2.2.0 dan yang lebih baru.

Untuk Versi Lama

Anda perlu menentukan forward=True secara eksplisit agar dapat memperbarui langsung kanvas Anda dalam versi yang lebih lama dari yang ditentukan di atas. Perhatikan bahwa set_figwidth dan set_figheight fungsi tidak mendukung forward parameter dalam versi yang lebih lama dari Matplotlib 1.5.0.


20
2017-10-30 15:23