Я думаю, вы можете попробовать следующее:
plt.ion()
word_frequency.plot(10, title='Top 10 Most Common Words in Corpus')
plt.savefig('img_top10_common.png')
plt.ioff()
plt.show()
Это потому, что внутри функции nltk plot
вызывается plt.show()
и после закрытия фигуры plt.savefig()
не имеет активной фигуры длясохранить больше.
Временное решение: включить интерактивный режим, чтобы plt.show()
изнутри функции nltk не блокировался.Затем вызывается savefig с текущей доступной фигурой и сохраняет правильный график.Чтобы затем показать рисунок, интерактивный режим необходимо снова отключить и plt.show()
вызывать извне - на этот раз в режиме блокировки.
В идеале nltk
переписал бы свою функцию построения графика, чтобы либо разрешить установить статус блокировки, либо не show
построить график и вернуть созданную фигуру, либо принять Axes
в качестве ввода, к которомупостроить.Не стесняйтесь обращаться к ним с этим запросом.