本文主要是介绍小福利,带大家用python一起学做词云图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
大家好,我是天空之城,今天给大家带来,用python一起学做词云图
感谢博友【刘一手emm】,原文链接在最后。
第一步先要爬虫得到做词云的数据存为csv文件或者excel文件,如下图中的pacong.csv,然后提取里面的数据列,我分别用了豆瓣top250电影介绍,以及电影飞驰人生评论,作图。第二步,数据分析用到了pandas,numpy模块,作图主要用到了matplotlib模块,背景图这里要下载一个opencv-python模块,词语分词用到了jieba模块。背景图的话可以自己网上下载。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from wordcloud import WordCloud
import jieba
import cv2 as cv# 读入图片背景
# 对于中文词云首先使用jieba来中文分词,然后还要记得指定font_path设置字体识别
# 想要的话还能设置词云的背景图片background_image = cv.imread('ciyun1.jpg') # 不设置background_image可以不加这行,得到的词云就是矩形了# with open('pacong.csv','r',encoding='utf-8') as f:
# text = f.read()
# print (text)
yingping = pd.read_csv('pacong.csv')
all_content = ''
for i in range(0, len(yingping['评论标题'])):all_content = all_content + yingping['评论标题'][i]
cut_text = " ".join(jieba.cut(all_content))
# print (cut_text)
# print (all_content)
# yingping.head()
wordcloud = WordCloud(font_path="C:/Windows/Fonts/simfang.ttf",mask=background_image,background_color='white', height=400, width=800, scale=20, prefer_horizontal=0.9999).generate(cut_text)
plt.figure(figsize=(10, 10))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.savefig('图6.jpg',dpi=600, bbox_inches='tight',quality=95)
plt.show()
尝试做了一下几个小图,大家有兴趣也可以做着玩玩
原文链接:https://blog.csdn.net/weixin_41466575/article/details/105303376?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
这是另一个作图的例子,从数据库获取数据经过处理再作图
import pymysql
from wordcloud import WordCloud,ImageColorGenerator#词云模块
import matplotlib.pyplot as plt#作图模块
from imageio import imread
# from scipy.misc import imread #图像处理模块#处理中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']#设置默认字体
plt.rcParams['axes.unicode_minus']=False#解决保存图像显示的方格问题#连接数据
conn=pymysql.connect(host='localhost',user='root',passwd='你的数据库密码',db='mydb',charset='utf8')
cursor=conn.cursor()
sql='select movie_pinglun from movies9'
cursor.execute(sql)
actor_list=cursor.fetchall()
print(actor_list)#元组形式#数据分列
actor_name_list=[item[0] for item in actor_list]
print(actor_name_list)
#join函数
actor_text=','.join(actor_name_list)
print(actor_text)#设置背景图片
coloring=imread('girl1.png')
#定义字体
font='C:\Windows\Fonts\simkai.ttf'#WordCloud()实例化词云#generate()输入词云文本my_wordcloud=WordCloud(font_path=font,max_font_size=400,background_color='black',mask=coloring).generate(actor_text)#显示词云图
plt.imshow(my_wordcloud)
#不显示坐标轴
plt.axis('off')
#显示
plt.show()# 原文链接:https://blog.csdn.net/weixin_41782574/article/details/82259719
这篇关于小福利,带大家用python一起学做词云图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!