Лог масштаб, используя функцию рассеяния Боке

Самый простой способ убедиться, что все ваши строки попадают в окно правильной фигуры, это что-то вроде:

from six.moves import input
import matplotlib.pyplot as plt
another = True
while another:
    fig, ax = plt.subplots()

    ax.plot(range(5))


    fig.canvas.manager.show() 
    # this makes sure that the gui window gets shown
    # if this is needed depends on rcparams, this is just to be safe
    fig.canvas.flush_events() 
    # this make sure that if the event loop integration is not 
    # set up by the gui framework the plot will update

    another = bool(input("would you like another? "))

Если вы хотите запустить это с помощью не-gui-сервера, вам нужно будет удалить flush_events вызовите или заверните его в папку try: ... except NotImplementedError. Большая часть этого осложнения - защитное программирование, потому что GUI могут быть трудными, и поведение этого кода может зависеть от многих факторов, которые не очевидны из показанного кода.

Использование неявных осей pyplot может привести к проблемы, поскольку «текущие оси» задаются последними осями, на которые пользователь нажал. Вы действительно должны использовать pyplot только при интерактивном вводе в rpel и почти никогда (кроме plt.subplots) в скриптах / программах.

10
задан MRocklin 29 July 2014 в 21:14
поделиться