如何查看和保存Python生成的词云
How to view and save the WordCloud generated in Python
我正在尝试从 .csv
文件在 Python 中生成 WordCloud。
这是我的 .csv
文件的样子:
title,views
universe,45678
earth,34366
smtp,4567987
这就是我创建 WordCloud 所做的工作:
import csv
import matplotlib.pyplot as pPlot
from wordcloud import WordCloud, STOPWORDS
reader = csv.reader(open('C:/Users/Sushma/Downloads/wordcloud.csv', 'r', newline = '\n', encoding = 'utf-8'))
for k, v in reader:
d[k] = float(v)
wordcloud = WordCloud().generate_from_frequencies(d)
如果我打印 WordCloud,我得到一个对象 id。
有人可以建议如何将其保存为图像以及如何在 Python 上查看吗?
首先,您的代码中存在一些错误:
1. .csv
文件必须放在list
中才能读取:
with open('C:/Users/Sushma/Downloads/wordcloud.csv', 'r', encoding = 'utf8', newline = '\r\n') as file:
reader = csv.reader(file, skipinitialspace = False, delimiter = ',', quoting = csv.QUOTE_NONE)
data = list(reader)
2. 在此之后,必须创建一个 dictionary
,其中包含 int
格式的键和值,以便稍后我们可以创建WordCloud:
word_freq = {}
for k, v in data[1:]:
word_freq[k] = int(v)
现在,您需要创建一个 variable
来接收 text 与其 frequency 之间的乘积:
text = ' '.join([(k + ' ') * v for k, v in word_freq.items()])
然后,您将创建 WordCloud 来接收此变量 text
:
wordcloud = WordCloud(width = 1600,
height = 800,
background_color = 'white',
collocations = False,
repeat = True).generate_from_text(text)
plt.figure(figsize=(10,5))
plt.imshow(wordcloud, interpolation = "bilinear")
plt.axis('off')
现在您可以简单地保存生成的 WordCloud:
plt.savefig(f'wordcloud.png',
dpi = 300)
绘制(可视化)只需使用:
plt.show()
最终结果:
Final result
我正在尝试从 .csv
文件在 Python 中生成 WordCloud。
这是我的 .csv
文件的样子:
title,views
universe,45678
earth,34366
smtp,4567987
这就是我创建 WordCloud 所做的工作:
import csv
import matplotlib.pyplot as pPlot
from wordcloud import WordCloud, STOPWORDS
reader = csv.reader(open('C:/Users/Sushma/Downloads/wordcloud.csv', 'r', newline = '\n', encoding = 'utf-8'))
for k, v in reader:
d[k] = float(v)
wordcloud = WordCloud().generate_from_frequencies(d)
如果我打印 WordCloud,我得到一个对象 id。
有人可以建议如何将其保存为图像以及如何在 Python 上查看吗?
首先,您的代码中存在一些错误:
1. .csv
文件必须放在list
中才能读取:
with open('C:/Users/Sushma/Downloads/wordcloud.csv', 'r', encoding = 'utf8', newline = '\r\n') as file:
reader = csv.reader(file, skipinitialspace = False, delimiter = ',', quoting = csv.QUOTE_NONE)
data = list(reader)
2. 在此之后,必须创建一个 dictionary
,其中包含 int
格式的键和值,以便稍后我们可以创建WordCloud:
word_freq = {}
for k, v in data[1:]:
word_freq[k] = int(v)
现在,您需要创建一个 variable
来接收 text 与其 frequency 之间的乘积:
text = ' '.join([(k + ' ') * v for k, v in word_freq.items()])
然后,您将创建 WordCloud 来接收此变量 text
:
wordcloud = WordCloud(width = 1600,
height = 800,
background_color = 'white',
collocations = False,
repeat = True).generate_from_text(text)
plt.figure(figsize=(10,5))
plt.imshow(wordcloud, interpolation = "bilinear")
plt.axis('off')
现在您可以简单地保存生成的 WordCloud:
plt.savefig(f'wordcloud.png',
dpi = 300)
绘制(可视化)只需使用:
plt.show()
最终结果:
Final result