如何使用 matplotlib 将多个子图绘制到一页上?
How to plot multiple subplots to one page using matplotlib?
我想将多个词云绘制到一页上,以便我可以轻松地添加到 word 文档中。以下代码有效,但词云太小。我怎样才能解决这个问题?谢谢。
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()
现在是这样的:
这是一个简单的实现,可以让您控制图形的大小。您可以调整 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()
我想将多个词云绘制到一页上,以便我可以轻松地添加到 word 文档中。以下代码有效,但词云太小。我怎样才能解决这个问题?谢谢。
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()
这是一个简单的实现,可以让您控制图形的大小。您可以调整 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()