关于wordcloud采坑
由于有些工作需要创建一个词云的图,虽然有许多网站都有词云的生成器,但是无法导出pdf格式的矢量图,清晰度无法保证。
所以动手使用python3+wordcloud库来自己生成词云。
参考资料 : https://cloud.tencent.com/developer/article/1373142 非常全面的使用说明
https://www.cnblogs.com/delav/articles/7837975.html 各参数说明
我要使用的资源是excel中的数据,首先转成csv格式,并将他变为字典格式的数据:
def row_csv2dict(csv_file):
dict_club = {}
with open(csv_file,encoding='UTF-8-sig')as f:
reader=csv.reader(f,delimiter=',')
for row in reader:
dict_club[str(row[0])]=float(row[1])
return dict_club
encoding='UTF-8-sig' 避免了用UTF-8时 读取csv文件出现的错误,生成了字典之后,就可以直接读入到 wordcloud中了,值得注意,导入的字典应该是 str + float 型。
完整代码如下 :
import pandas as pd
import matplotlib.dates as mdate
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import csv
def row_csv2dict(csv_file):
dict_club = {}
with open(csv_file,encoding='UTF-8-sig')as f:
reader=csv.reader(f,delimiter=',')
for row in reader:
dict_club[str(row[0])]=float(row[1])
return dict_club
if __name__ == '__main__':
res = row_csv2dict('wifi.csv')
print(res)
font_path = 'C:\Windows\Fonts\STXINWEI.TTF' # 思源黑
wordcloud = WordCloud(
background_color = '#F3F3F3',
font_path = font_path,
width = 768,
height = 768,
margin = 2,
max_font_size = 200,
random_state = 42,
scale = 3,
colormap = 'viridis', )
wordcloud.generate_from_frequencies(res)
wordcloud.to_file('wordcloud.pdf')
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
最上方的两个参考文献,对了解wordcloud非常用帮助,效果图部分如下,具有很高的清晰度: