Python之pyecharts数据可视化,词云图,仪表盘!
2021-03-31 03:28
标签:字符串 new ntc anim 运行 数值 nbsp ges utf-8 词云就是通过形成关键词云层或关键词渲染,过滤掉大量的文本信息,对网络文本中出现频率较高的关键词的视觉上的突出。 运行效果如下: 运行效果如下: 运行效果如下: 很好玩把,想学吗?想学就加群呀:1136192749 Python之pyecharts数据可视化,词云图,仪表盘! 标签:字符串 new ntc anim 运行 数值 nbsp ges utf-8 原文地址:https://www.cnblogs.com/A3535/p/13571700.html一、词云图
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}
{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之pyecharts数据可视化,词云图,仪表盘!
文章链接:http://soscw.com/index.php/essay/70284.html