使用Pycharm实现数据可视化作品代码-Python应用

一、背景图。

根据自己需要选择一张黑白背景图(用于词云生成的彩色照片也可以)。

二、文本TXT中。

在txt文本中可根据自己喜欢填写信息,数据量尽量多一些。

三、在在pycharm中运行的生成词云的代码。

1、anaconda 安装Pyecharts,用管理员权限打开Anaconda Prompt。先使用 conda install wheel安装wheel这个包(在Anaconda3中若已经安装了,可不安装)。输入:pip install pyecharts,再输入:pip install pyecharts-snapshot

具体代码样例如下:

复制代码
#饼状图
from pyecharts.charts import Pie
import pyecharts.options as opts
num = [4989, 3235, 2715, 1009, 865, 467, 428,240,230,190]
lab = ['沙具', '沙子', '移动', '旋转', '创建', '椰子树', '草丛','缩放','石头','篱笆']
x = [(i, j)for i, j in zip(lab, num)]
(
    Pie()
    .add(series_name='饼状',data_pair=[(i, j) for i, j in zip(lab, num)],)#注意传入的数据
    .set_global_opts(title_opts=opts.TitleOpts(title="词频统计"))#标题
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))#使用百分比
    #.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))#不使用百分比
    .render('D:/饼图-沙盘词频统计.html')
)

#玫瑰图
from pyecharts.charts import Pie
import pyecharts.options as opts
num = [4989, 3235, 2715, 1009, 865, 467, 428,240,230,190]
lab = ['沙具', '沙子', '移动', '旋转', '创建', '椰子树', '草丛','缩放','石头','篱笆']
x = [(i, j)for i, j in zip(lab, num)]
(
    Pie()
    .add(series_name='饼状',data_pair=[(i, j) for i, j in zip(lab, num)],rosetype='radius',radius=[100,150])#注意传入的数据
    .set_global_opts(title_opts=opts.TitleOpts(title="词频统计"))#标题
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))#给图形的样式添加数据
    .render('D:/玫瑰图-沙盘词频统计.html')
)

#南丁格尔图
from pyecharts.charts import Pie
import pyecharts.options as opts
num = [4989, 3235, 2715, 1009, 865, 467, 428,240,230,190]
lab = ['沙具', '沙子', '移动', '旋转', '创建', '椰子树', '草丛','缩放','石头','篱笆']
x = [(i, j)for i, j in zip(lab, num)]
(
    Pie()
    .add(series_name='饼状',data_pair=[(i, j) for i, j in zip(lab, num)],rosetype='radius')#注意传入的数据
    .set_global_opts(title_opts=opts.TitleOpts(title="词频统计"))#标题
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))#给图形的样式添加数据
    .render('D:/南丁格尔图-沙盘词频统计.html')
)

#词频词云图
from pyecharts import options as opts
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
# 添加词频数据
words = [('沙具', 4724), ('沙子', 3235), ('挖', 3084), ('移动', 2715), ('旋转', 1009), ('创建', 865), ('椰子树', 467), ('草丛', 428), ('缩放', 240), ('石头', 230)]
# WordCloud模块,链式调用配置,最终生成html文件
c = (
    WordCloud()
    .add("", words, word_size_range=[20, 100], shape=SymbolType.DIAMOND)
    .set_global_opts(title_opts=opts.TitleOpts(title="词频统计"))
    .render('D:/词频词云图-沙盘词频统计.html')
)

2、生成彩色词云图代码-中文TXT文档

复制代码
import wordcloud
import jieba
import imageio
from imageio  import imread
# 读入一个中文txt文件
f = open(r'D:\shapan.txt', encoding='gbk')
t = f.read()
f.close()
# 使用jieba库进行分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云
words = jieba.lcut(t)
# 使用join()方法,将分词生成的字符串以空格进行分割。因为在生成词云时,字符串之间需要为空格
txt = ' '.join(words)
# 设置词云图片
pic = imread(r'D:\meinv.jpg')
# 实例词云对象,设置词云字体:font_path、背景颜色:background_color、词云形状:mask
w = wordcloud.WordCloud(font_path=r'C:\WINDOWS\Fonts\msyh.ttf',background_color='white', mask=pic)
# 生成词云
w.generate(txt)
# 生成图片
w.to_file(r'D:\meinvkeshihua.jpg')

3、词频统计及词云图代码-中文文档

复制代码
import re # 正则表达式库
import collections # 词频统计库
import numpy as np # numpy数据处理库
import jieba # 结巴分词
import wordcloud # 词云展示库
from PIL import Image # 图像处理库
import matplotlib.pyplot as plt # 图像展示库
# 读取文件
fn = open('D://shapan.txt','rt') # 打开文件
string_data = fn.read() # 读出整个文件
fn.close() # 关闭文件
 # 文本预处理
pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') # 定义正则表达式匹配模式
string_data = re.sub(pattern, '', string_data) # 将符合模式的字符去除
 # 文本分词
seg_list_exact = jieba.cut(string_data, cut_all = False) # 精确模式分词
object_list = []
remove_words = [u','] # 自定义去除词库
for word in seg_list_exact: # 循环读出每个分词
    if word not in remove_words: # 如果不在去除词库中
         object_list.append(word) # 分词追加到列表
# 词频统计
word_counts = collections.Counter(object_list) # 对分词做词频统计
word_counts_top10 = word_counts.most_common(10) # 获取前10最高频的词
print (word_counts_top10) # 输出检查
# 词频展示
mask = np.array(Image.open('D://meinv.jpg')) # 定义词频背景
wc = wordcloud.WordCloud(
font_path='C:/Windows/Fonts/msyh.ttf', # 设置字体格式
mask=mask, # 设置背景图
max_words=2000, # 最多显示词数
max_font_size=100 # 字体最大值
)
wc.generate_from_frequencies(word_counts) # 从字典生成词云
image_colors = wordcloud.ImageColorGenerator(mask) # 从背景图建立颜色方案
wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图方案
plt.imshow(wc) # 显示词云
plt.axis('off') # 关闭坐标轴
plt.show() # 显示图像
相关推荐
todoitbo1 小时前
从“会展示”到“会讲解”:基于魔珐星云 + 大模型打造企业数字展厅AI讲解员(开源实战)
人工智能·信息可视化·数字人·大屏可视化·魔珐星云
2501_914245931 小时前
如何修复宝塔面板由于inode耗尽导致无法创建文件_清理海量小文件缓存与会话目录
jvm·数据库·python
❆VE❆1 小时前
python基础篇(一):使用vscode搭建python相关环境
开发语言·vscode·python
2401_837163892 小时前
WordPress后台插件隐藏策略:仅对指定管理员显示特定插件
jvm·数据库·python
qq_189807032 小时前
C++如何验证YAML语法格式是否正确_try-catch解析校验用法【实战】
jvm·数据库·python
晨+燕2 小时前
JMeter中如何定位到某个具体的类来自于哪个jar包
python·jmeter·jar
zhangchaoxies2 小时前
c++如何读取YAML格式配置文件_yaml-cpp库快速入门【详解】
jvm·数据库·python
qq_654366982 小时前
如何安全清理数据库中未引用的图片文件
jvm·数据库·python
一 乐2 小时前
智慧社区|基于Python + Django智慧社区系统(源码+数据库+文档)
java·数据库·python·django·论文·毕设·智慧社区系统