[python] matplotlib로 그린 그림의 크기를 어떻게 변경합니까?

matplotlib로 그린 그림의 크기를 어떻게 변경합니까?



답변

그림 은 통화 서명을 알려줍니다.

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

figure(figsize=(1,1)) 다른 dpi 인수를 지정하지 않는 한 인치 단위 이미지를 생성합니다.


답변

그림을 이미 만든 경우 다음과 같이 빠르게 수행 할 수 있습니다.

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

기존 GUI 창에 크기 변경을 전파하려면 추가 forward=True

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


답변

중단 노트 :
당으로 공식하기 matplotlib 가이드는 ,의 사용 pylab모듈은 더 이상 권장되지 않습니다. 이 다른 답변에서matplotlib.pyplot 설명한대로 모듈을 대신 사용하십시오 .

다음은 작동하는 것 같습니다.

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

이것은 그림의 너비를 5 인치로 만들고 높이를 10 인치로 만듭니다.

그런 다음 Figure 클래스는이를 인수 중 하나의 기본값으로 사용합니다.


답변

plt.rcParams 사용

그림 환경을 사용하지 않고 크기를 변경하려는 경우에도이 해결 방법이 있습니다. 따라서 plt.plot()예를 들어 사용 하는 경우 너비와 높이로 튜플을 설정할 수 있습니다.

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

인라인을 플로팅 할 때 매우 유용합니다 (예 : IPython Notebook). @asamaier가 주목 한 것처럼이 명령문을 동일한 imports 문의 셀에 넣지 않는 것이 좋습니다.

cm로 변환

figsize당신은 2.54으로 그들을 분할해야 센티미터에서 설정하려는 경우에 좀 그래서 튜플 인치를 받아들이는 이 질문을 .


답변

다음과 같이 간단한 코드를 사용해보십시오.

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

플롯하기 전에 그림 크기를 설정해야합니다.


답변

Pandas 에서 그림 크기를 변경하는 방법을 찾고 있다면 다음과 같이하십시오.

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

df팬더 데이터 프레임은 어디에 있습니까 ? 또는 기존 도형을 사용하려면

fig, ax = plt.subplots(figsize=(10,5))
df['some_column'].plot(ax=ax)

기본 설정을 변경하려면 다음을 수행하십시오.

import matplotlib

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


답변

Google의 첫 번째 링크 'matplotlib figure size'AdjustingImageSize ( 페이지의 Google 캐시 )입니다.

위 페이지의 테스트 스크립트는 다음과 같습니다. test[1-3].png동일한 이미지의 크기가 다른 파일을 만듭니다 .

#!/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.

산출:

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.]

두 가지 메모 :

  1. 모듈 설명과 실제 출력이 다릅니다.

  2. 이 답변을 사용하면 세 이미지를 하나의 이미지 파일로 쉽게 결합하여 크기의 차이를 볼 수 있습니다.