Python을 사용하여 plt.show () 창을 최대화하는 방법 작업을 수행하는 방법을 알고 싶습니다.

호기심을 위해 아래 코드에서이 작업을 수행하는 방법을 알고 싶습니다. 나는 답을 찾고 있었지만 쓸모가 없습니다.

import numpy as np
import matplotlib.pyplot as plt
data=np.random.exponential(scale=180, size=10000)
print ('el valor medio de la distribucion exponencial es: ')
print np.average(data)
plt.hist(data,bins=len(data)**0.5,normed=True, cumulative=True, facecolor='red', label='datos tamano paqutes acumulativa', alpha=0.5)
plt.legend()
plt.xlabel('algo')
plt.ylabel('algo')
plt.grid()
plt.show()



답변

나는 보통 사용

mng = plt.get_current_fig_manager()
mng.frame.Maximize(True)

를 호출하기 전에 plt.show()창이 최대화됩니다. 이것은 ‘wx’백엔드에서만 작동합니다.

편집하다:

Qt4Agg 백엔드의 경우 kwerenda의 답변을 참조하십시오 .


답변

저는 Windows (WIN7)에서 Python 2.7.5 및 Matplotlib 1.3.1을 실행하고 있습니다.

다음 줄을 사용하여 TkAgg, QT4Agg 및 wxAgg에 대한 Figure 창을 최대화 할 수있었습니다.

from matplotlib import pyplot as plt

### for 'TkAgg' backend
plt.figure(1)
plt.switch_backend('TkAgg') #TkAgg (instead Qt4Agg)
print '#1 Backend:',plt.get_backend()
plt.plot([1,2,6,4])
mng = plt.get_current_fig_manager()
### works on Ubuntu??? >> did NOT working on windows
# mng.resize(*mng.window.maxsize())
mng.window.state('zoomed') #works fine on Windows!
plt.show() #close the figure to run the next section

### for 'wxAgg' backend
plt.figure(2)
plt.switch_backend('wxAgg')
print '#2 Backend:',plt.get_backend()
plt.plot([1,2,6,4])
mng = plt.get_current_fig_manager()
mng.frame.Maximize(True)
plt.show() #close the figure to run the next section

### for 'Qt4Agg' backend
plt.figure(3)
plt.switch_backend('QT4Agg') #default on my system
print '#3 Backend:',plt.get_backend()
plt.plot([1,2,6,4])
figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()
plt.show()

작업 예제 (적어도 Windows의 경우)에 결합 된 이전 답변 (및 일부 추가 사항)에 대한 요약이 도움이되기를 바랍니다. 건배


답변

Qt 백엔드 (FigureManagerQT)에서 적절한 명령은 다음과 같습니다.

figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()


답변

이렇게하면 TkAgg 백엔드가있는 Ubuntu 12.04에서 창이 전체 화면을 차지하게됩니다.

    mng = plt.get_current_fig_manager()
    mng.resize(*mng.window.maxsize())


답변

나를 위해 위의 어떤 것도 효과가 없었습니다. matplotlib 1.3.1이 포함 된 Ubuntu 14.04에서 Tk 백엔드를 사용합니다.

다음 코드는 최대화와 동일하지는 않지만 내 목적에 잘 맞는 전체 화면 플롯 창을 만듭니다.

from matplotlib import pyplot as plt
mng = plt.get_current_fig_manager()
mng.full_screen_toggle()
plt.show()


답변

이것은 작동합니다 ( 적어도 TkAgg에서는) :

wm = plt.get_current_fig_manager()
wm.window.state('zoomed')

(위에서 채택하고 Tkinter를 사용하여 창을 눈에 띄게 확대하지 않고 사용 가능한 화면 크기를 얻는 방법이 있습니까? )


답변

이것은 일종의 해키이며 아마도 휴대용이 아닙니다. 빠르고 더러운 것을 찾고있는 경우에만 사용하십시오. 화면보다 훨씬 크게 설정하면 화면 전체를 정확하게 차지합니다.

fig = figure(figsize=(80, 60))

사실 Qt4Agg가있는 Ubuntu 16.04에서는 화면보다 크면 창 (전체 화면 아님)을 최대화합니다. (두 개의 모니터가있는 경우 그중 하나에서 최대화합니다.)