python pyecharts数据可视化 词云图 仪表盘 水球图
时间:2022-07-25
本文章向大家介绍python pyecharts数据可视化 词云图 仪表盘 水球图,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
文章目录
一、词云图
词云就是通过形成关键词云层或关键词渲染,过滤掉大量的文本信息,对网络文本中出现频率较高的关键词的视觉上的突出。
import jieba
import collections
import re
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
from pyecharts import options as opts
from pyecharts.globals import ThemeType, CurrentConfig
CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'
with open('barrages.txt') as f:
data = f.read()
# 文本预处理 去除一些无用的字符 只提取出中文出来
new_data = re.findall('[u4e00-u9fa5]+', data, re.S) # 只要字符串中的中文
new_data = " ".join(new_data)
# 文本分词--精确模式
seg_list_exact = jieba.cut(new_data, cut_all=False)
result_list = []
with open('stop_words.txt', encoding='utf-8') as f:
con = f.readlines()
stop_words = set()
for i in con:
i = i.replace("n", "") # 去掉读取每一行数据的n
stop_words.add(i)
for word in seg_list_exact:
# 设置停用词并去除单个词
if word not in stop_words and len(word) > 1:
result_list.append(word)
print(result_list)
# 筛选后统计
word_counts = collections.Counter(result_list)
# 获取前100最高频的词
word_counts_top100 = word_counts.most_common(100)
# 打印出来看看统计的词频
print(word_counts_top100)
# 链式调用
c = (
WordCloud(
init_opts=opts.InitOpts(width='1350px', height='750px', theme=ThemeType.MACARONS)
)
.add(
series_name="词频", # 系列名称
data_pair=word_counts_top100, # 系列数据项 [(word1, count1), (word2, count2)]
word_size_range=[15, 108], # 单词字体大小范围
textstyle_opts=opts.TextStyleOpts( # 词云图文字的配置
font_family='KaiTi',
),
shape=SymbolType.DIAMOND, # 词云图轮廓,有 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star' 可选
pos_left='100', # 距离左侧的距离
pos_top='50', # 距离顶部的距离
)
.set_global_opts(
title_opts=opts.TitleOpts( # 标题配置项
title='弹幕词云图',
title_textstyle_opts=opts.TextStyleOpts(
font_family='SimHei',
font_size=25,
color='black'
),
pos_left='500',
pos_top='10',
),
tooltip_opts=opts.TooltipOpts( # 提示框配置项
is_show=True,
background_color='red',
border_color='yellow',
),
toolbox_opts=opts.ToolboxOpts( # 工具箱配置项
is_show=True,
orient='vertical',
)
)
.render('弹幕词云图.html')
)
运行效果如下:
二、仪表盘
from pyecharts.charts import Gauge
from pyecharts.globals import CurrentConfig
from pyecharts import options as opts
CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'
c = (
Gauge()
.add(
series_name='业务指标', # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
data_pair=[['完成率', 88.8]], # 系列数据项,格式为 [(key1, value1), (key2, value2)]
radius='70%', # 仪表盘半径,可以是相对于容器高宽中较小的一项的一半的百分比,也可以是绝对的数值。
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts( # 坐标轴轴线配置项
color=[(0.3, "#67e0e3"), (0.7, "#37a2da"), (1, "#fd666d")],
width=30,
)
),
title_label_opts=opts.LabelOpts( # 轮盘内标题文本项标签配置项
font_size=25, color='blue', font_family='KaiTi'
)
)
.set_global_opts(
title_opts=opts.TitleOpts( # 标题配置项
title='仪表盘',
title_textstyle_opts=opts.TextStyleOpts(
font_size=25, font_family='SimHei',
color='black', font_weight='bold',
),
pos_left="410", pos_top="8",
),
legend_opts=opts.LegendOpts( # 图例配置项
is_show=False
),
tooltip_opts=opts.TooltipOpts( # 提示框配置项
is_show=True,
formatter="{a} <br/>{b} : {c}%",
)
)
.render('gauge.html')
)
运行效果如下:
三、水球图
from pyecharts import options as opts
from pyecharts.charts import Grid, Liquid
from pyecharts.commons.utils import JsCode
from pyecharts.globals import CurrentConfig, ThemeType
CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'
lq_1 = (
Liquid()
.add(
series_name='电量', # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
data=[0.25], # 系列数据,格式为 [value1, value2, ....]
center=['60%', '50%'],
# 水球外形,有' circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow' 可选。
# 默认 'circle' 也可以为自定义的 SVG 路径
shape='circle',
color=['yellow'], # 波浪颜色 Optional[Sequence[str]] = None,
is_animation=True, # 是否显示波浪动画
is_outline_show=False, # 是否显示边框
)
.set_global_opts(title_opts=opts.TitleOpts(title='多个Liquid显示'))
)
lq_2 = (
Liquid()
.add(
series_name='数据精度',
data=[0.8866],
center=['25%', '50%'],
label_opts=opts.LabelOpts(
font_size=50,
formatter=JsCode(
"""function (param) {
return (Math.floor(param.value * 10000) / 100) + '%';
}"""
),
position='inside'
)
)
)
grid = Grid(init_opts=opts.InitOpts(theme=ThemeType.DARK)).add(lq_1, grid_opts=opts.GridOpts()).add(lq_2, grid_opts=opts.GridOpts())
grid.render("multiple_liquid.html")
运行效果如下:
作者:叶庭云 微信公众号:修炼Python CSDN:https://yetingyun.blog.csdn.net/ 本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。 觉得文章对你有帮助、让你有所收获的话,期待你的点赞呀,不足之处,也可以在评论区多多指正。
- 算法模板——左偏树(可并堆)
- 算法模板——二分图匹配
- Codevs2776 寻找代表元
- C#线程篇---解答线程之惑(2)
- webpack学习(三)html-webpack-plugin插件
- Codevs2018 反病毒软件
- 2953: [Poi2002]商务旅行
- 1230: [Usaco2008 Nov]lites 开关灯
- 【推荐】C#线程篇---你所不知道的线程池(4)
- 洛谷P1333 瑞瑞的木棍(欧拉回路)
- 【推荐】C#线程篇---Task(任务)和线程池不得不说的秘密(5.1)
- 【LeetCode 20】关关的刷题日记45 – Valid Parenthese
- 1819: [JSOI]Word Query电子字典
- 【推荐】C#线程篇---Task(任务)和线程池不得不说的秘密(5.2)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Servlet生命周期
- 制作的 dotnet tool 运行失败提示依赖缺失
- 撸了个多线程断点续传下载器,我从中学习到了这些知识
- 使用 IOC 控制反转和 DI 依赖注入的意义
- Servlet配置初始值,并获取初始值
- CSS 技巧一则 -- 不定宽溢出文本适配滚动
- 潘石屹用Python解决100个问题 | 最大公约数
- 我的天上传文件又出现问题了(超出大小限制)
- 现在学 PHP 没有发展?来看看这个后台框架你还会这么想吗
- leetcode-easy-array-最大子序和
- Leecode No.3 无重复字符的最长子串
- Solidity 0.6.11 更新
- 潘石屹用Python解决100个问题 | 最小公倍数
- 通过CREATE2获得合约地址:解决交易所充值账号问题
- 小知识:如何判定crontab任务的执行频度