关于wordcloud采坑

     由于有些工作需要创建一个词云的图,虽然有许多网站都有词云的生成器,但是无法导出pdf格式的矢量图,清晰度无法保证。

所以动手使用python3+wordcloud库来自己生成词云。

参考资料 : https://cloud.tencent.com/developer/article/1373142  非常全面的使用说明

                    https://www.cnblogs.com/delav/articles/7837975.html   各参数说明

 

  我要使用的资源是excel中的数据,首先转成csv格式,并将他变为字典格式的数据:

                                              关于wordcloud采坑

   

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

关于wordcloud采坑

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非常用帮助,效果图部分如下,具有很高的清晰度:

 

关于wordcloud采坑