2017-02-22 52 views
0

Когда я создаю новую фигуру с помощью pyplot, она автоматически открывается в левом верхнем углу экрана. Я бы хотел, чтобы он открывался в другой позиции (например, в правом верхнем углу экрана). То, что я делал до сих пор, это изменить положение после использования:Как изменить положение окна по умолчанию для фигуры matplotlib?

import matplotlib.pyplot as plt 
plt.figure() # opens on the top left 
(x,y,w,h) = ... # The desired position 
plt.get_current_fig_manager().window.setGeometry(x,y,w,h) 

Есть ли способ, которым я мог бы установить желаемую позицию по умолчанию Matplotlib? Я посмотрел в файл matplotlibrc, но не нашел ничего, что могло бы мне помочь ... любые идеи?

+0

Проблема заключается в том, что способ перемещения окна отличается для разных движки. Поэтому я не думаю, что существует общий способ сделать это, поэтому он не отображается в файле matplotlibrc. См. Http://stackoverflow.com/questions/7449585/how-do-you-set-the-absolute-position-of-figure-windows-with-matplotlib?rq=1 – tom

+0

Спасибо, но тема, о которой вы упоминаете, касается установка позиции вручную, и я хотел бы установить ее один раз для всех в качестве параметров по умолчанию. Я должен выяснить, где установлены эти значения по умолчанию, и можно ли их переопределить ... – user7605211

+0

Я хочу сказать, что, поскольку это делается по-разному для всех бэкэндов, я не думаю, что есть способ их глобального переопределения. Но удача в поиске ... – tom

ответ

0

Спасибо, ребята, за ответы. Я понимаю, что эти умолчания не управляются Python. Решение, которое я нашел, это определить функцию, чтобы открыть новую фигуру и переместить ее в нужное место. Таким образом, хотя я должен определить или импортировать функцию каждый раз, когда я открываю консоль IPython, я не должен двигаться каждую фигуру после:

# in file mymodule.py 
import matplotlib.pyplot as plt 

def newfigure(num=None): 
     hfig = plt.figure(num) 
     plt.get_current_fig_manager().window.setGeometry(x,y,w,h) 
     return hfig 

# in a python script, or in the interactive console: 
import matplotlib.pyplot as plt 
import mymodule as mm 

plt.figure() # Opens where I don't want it to 
mm.newfigure() # Opens at position (x,y) and with width and height (w,h) 

 Смежные вопросы

  • Нет связанных вопросов^_^