Как построить несколько подзаговоров на одной странице, используя matplotlib? - PullRequest
1 голос
/ 18 апреля 2020

Я хочу построить несколько облаков слов на одной странице, чтобы я мог легко добавить к слову do c. Следующий код работает, но облака слов слишком малы. Как я могу это исправить? Спасибо.

    for t in range(ldamodel.num_topics):

        plt.subplot(6,2,t+1)
        print(ldamodel.show_topic(t, num_words))
        word_p_list = ldamodel.show_topic(t, num_words)
        topic_word_dict = {p[0]:p[1] for p in word_p_list}
        plt.imshow(WordCloud().fit_words(topic_word_dict))
        plt.axis("off")
        plt.title("Topic #" + str(t+1))


    plt.savefig(f"terms_all.png", bbox_inches='tight')
    plt.show()

enter image description here Теперь это так: enter image description here

1 Ответ

1 голос
/ 18 апреля 2020

Вот простая реализация, которая может дать вам контроль над размером фигуры. Вы можете настроить figsize в соответствии со своими потребностями.

rows=6
cols=2

fig, ax = plt.subplots(rows, cols, figsize=(12.5,6.5))

row=0 
col=0 

for t in range(ldamodel.num_topics):
    word_p_list = ldamodel.show_topic(t, num_words)
    topic_word_dict = {p[0]:p[1] for p in word_p_list}
    ax[row][col].imshow(WordCloud().fit_words(topic_word_dict))
    row=row+1
    if row==rows:
        row=0
        col=col+1


plt.savefig(f"terms_all.png", bbox_inches='tight')
plt.show() 
...