社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python数据可视化词云展示周董的歌

python • 5 年前 • 394 次点击  


马上开始了,你准备好了么

准备工作

环境:Windows + Python3.6
IDE:根据个人喜好,自行选择
模块:
Matplotlib是一个 Python 的 2D数学绘图库

pip install matplotlib
import matplotlib.pyplot as plt

jieba中文分词库

pip install jieba
import jieba

wordcloud词云库

pip install wordcloud
from wordcloud import WordCloud

实战具体步骤:

1、读入txt文本数据。
2、结巴中文分词,生成字符串默认精确模式,如果不通过分词,无法直接生成正确的中文词云。
3、生成词云图,这里需要注意的是WordCloud默认不支持中文,所以这里需已下载好的中文字库。
(无自定义背景图:需要指定生成词云图的像素大小,默认背景颜色为黑色,统一文字颜色:mode='RGBA'和colormap='pink')
4、显示图片。

总体而言只有四个步骤还是比较简单的那咱们先看一下实现的效果图吧!

看到效果图后发现里面的秘密没?

完整代码

# Matplotlib是一个 Python 的 2D数学绘图库
# 安装:pip install matplotlib
import matplotlib.pyplot as plt
# jieba中文分词库
# 安装:pip install jieba
import jieba
# wordcloud词云库
# 安装pip install wordcloud
from wordcloud import WordCloud
# 1.读入txt文本数据
text = open(r'.\jay.txt' , "r").read()
#print(text)
# 2.结巴中文分词,生成字符串,默认精确模式,如果不通过分词,无法直接生成正确的中文词云
cut_text = jieba.cut(text)
# print(type(cut_text))
# print(next(cut_text))
# print(next(cut_text))
# print(next(cut_text))
# 必须给个符号分隔开分词结果来形成字符串,否则不能绘制词云
result = " ".join(cut_text)
#print(result)
# 3.生成词云图,这里需要注意的是WordCloud默认不支持中文,所以这里需已下载好的中文字库
# 无自定义背景图:需要指定生成词云图的像素大小,默认背景颜色为黑色,统一文字颜色:mode='RGBA'和colormap='pink'
wc = WordCloud(
       # 设置字体,不指定就会出现乱码
       font_path=r'.\simhei.ttf',
       # 设置背景色
       background_color='white',
       # 设置背景宽
       width=500,
       # 设置背景高
       height=350,
       # 最大字体
       max_font_size=50,
       # 最小字体
       min_font_size=10,
              )  # max_words=1000 ),mode='RGBA',colormap='pink')
# 产生词云
wc.generate(result)
# 保存图片
wc.to_file(r".\wordcloud.png")  # 按照设置的像素宽高度保存绘制好的词云图,比下面程序显示更清晰
# 4.显示图片
# 指定所绘图名称
plt.figure("jay")
# 以图片的形式显示词云
plt.imshow(wc)
# 关闭图像坐标系
plt.axis("off")
plt.show()


温馨提示

如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/0LujHI6IqD
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/13197
 
394 次点击