词云编写 先导入数据,之前爬取的全国疫情数据表包含各省确诊、死亡、治愈人数。导入数据之后可以打印查看是否成功。 import openpyxl? #导入模块,方便读取xlsx from wordcloud import WordCloud
#读取数据 wb = openpyxl.load_workbook('data.xlsx') #获取工作表 ws = wb['data'] for row in ws.values:? #对名为“data”的工作表进行遍历 ? ? print(row) ? 打印成功,数据以元组形式打印出来。但是我只想要地区和对应数据,第一行是多余的,可以通过代码来去除第一行。这里将打印语句删除,创建一个空字典 import openpyxl? #导入模块,方便读取xlsx from wordcloud import WordCloud
#读取数据 wb = openpyxl.load_workbook('data.xlsx') #获取工作表 ws = wb['data'] frequency = {}? ?#创建空字典 for row in ws.values:? #对名为“data”的工作表进行遍历 ? ? ?if row[0] == 'province':? ? ? ?#元组第一个是省份 ? ? ? ? pass? ? ?#pass,不做处理 ? ? else: ? ? ? ? frequency[row[0]] = row[1]? ?#元组下标为1的值,是我创建字典的第一项(下标0) print(frequency)? #打印测试 ? 打印成功,得到我们想要的数据,
?进入c盘,winds下的Fonts文件夹下选择自己喜欢的字体,右键然后点击“属性”,复制文件名及路径,这里我选的是华文楷体。 ? 最后保存,运行,多出一个wordcloud图片,点击即可获得基于全国确诊病例的词云图。
?
完整代码:
import openpyxl? #导入模块,方便读取xlsx
from wordcloud import WordCloud
?#读取数据
wb = openpyxl.load_workbook('data.xlsx')
#获取工作表
ws = wb['data']
frequency = {}? ?#创建空字典
for row in ws.values:? #对名为“data”的工作表进行遍历
? ? #print(row)? ?#数据以元组形式打印出来。但是我只想要地区和对应数据,第一行是多余的
? ? if row[0] == 'province':? ? ? ?#元组第一个是省份
? ? ? ? pass? ? ?#pass,不做处理
? ? else:
? ? ? ? frequency[row[0]] = row[1]? #元组下标为1的值,是我创建字典的第一项(下标0)
#print(frequency)? #打印测试
?
#实例化wordcloud这个类,并且赋值给wordcloud,
#括号里是我想要的参数,因为词云都是中文,所以必须传入字体,否则无法正常输出
wordcloud= WordCloud(font_path="C:/Windows/Fonts/STKAITI.TTF",? ? ?#指定字体
? ? ? ? ? ? ? ? ? ? ?background_color="black",? ? #指定背景色
? ? ? ? ? ? ? ? ? ? ?width=1920,height=1080)? ? ? #词云宽高
#根据表格确诊病例数据生成词云
wordcloud.generate_from_frequencies(frequency)
#保存词云
wordcloud.to_file('wordcloud.png')
?
|