如何使用matplotlib将多个子图打印到一个页面?

2024-06-26 00:05:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个页面上绘制多个wordclouds,这样我就可以轻松地添加到word文档中。下面的代码可以工作,但是wordclouds太小了。我怎样才能解决这个问题?多谢各位

    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


Tags: in文档fortopicshow绘制plt页面
1条回答
网友
1楼 · 发布于 2024-06-26 00:05:41

这是一个简单的实现,可以让您控制图形的大小。您可以调整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() 

相关问题 更多 >