已知词频生成词云图(数据库到生成词云)--generate_from_frequencies(WordCloud)

词云图是根据词出现的频率生成词云,词的字体大小表现了其频率大小。

 

写在前面:

用wc.generate(text)直接生成词频的方法使用很多,所以不再赘述。

但是对于根据generate_from_frequencies()给定词频如何画词云图的资料找了很久,下面只讲这种方法。

generate_from_frequencies适用于我已知词及其对应的词频是多少(已有数据库),不需要分词的情况下。

官方文档说generate_from_frequencies函数的参数是array of tuple,但是我试了很久都不行,最后发现居然应该是dict 字典形式!

即形如:{ word1: fre1, word2: fre2,  word3: fre3,......,  wordn: fren }

 

注意:

词云wordcloud的中文显示,需要特殊处理,在网上看了不少是说加字体路径之类的方法我试了都不行,最后只好采用改变编码的形式才解决好。

fp = pd.read_csv(read_name, encoding='gbk')  # 读取词频csv文件, 编码为gbk

 

还有,示例词云的轮廓背景图由china_map.jpg给出,如下图:

 

一、数据文件准备

support_institution.csv

数据库字段分组查询数量

select support_institution name,count(support_institution) value from nsfc GROUP BY name ORDER BY value DESC;

查询结果部分截图:  

 

导出为csv文件:support_institution.csv

 

二、导入模块包

可参考Windows下安装Python、matplotlib包 及相关
https://blog.csdn.net/mikasa3/article/details/78942650 

1、numpy

2、pandas

3、wordcloud

4、matplotlib

 

三、完整代码

import numpy as np
import pandas as pd
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
from PIL import Image


def draw_cloud(read_name):
    image = Image.open('china_map.jpg')  #
  • 0
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值