python, nltk, результат многократного вывода слова freqency (subplot) - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь визуализировать most_common (10) слов в каждом тексте.Вот мой код.
(я использовал все тексты nltk.corpus.gutenberg)

from nltk.corpus import gutenberg
import matplotlib.pyplot as plt
from nltk import ConditionalFreqDist
from nltk.corpus import stopwords
%matplotlib inline

stop_words = set(stopwords.words('English'))

cfd = ConditionalFreqDist((target[:-4], word.lower())
                         for target in gutenberg.fileids()
                         for word in gutenberg.words(target)
                         if word.lower() not in stop_words
                         and word.isalpha())

plt.figure(figsize = (10,10))
for i, title in enumerate(list(cfd.keys())):
    plt.subplot(6,3,i+1)
    cfd[title].plot(10)

Я хочу построить 6x3, используя подзаговор, но результат всегда 18x1.Есть ли хороший метод по этому поводу?Спасибо.

1 Ответ

0 голосов
/ 12 октября 2018

Я смог использовать subplot2grid, заменив вызов plt.subplot () на вызов subplot2grid.Вот как мне удалось заставить его работать:

plt.figure(figsize = (6,3))
for i, title in enumerate(list(cfd.keys())):
    #     plt.subplot(6,3,i+1)
    plt.subplot2grid((6,3),(0,0), rowspan=10, colspan=10)
    cfd[title].plot(10, title=title)

Вот пример общего использования для subplot2grid:gridrids.GridSpec (3,3)

# large subplot
plt.subplot2grid((3,3), (0,0), colspan=2, rowspan=3)
...