
基于pythom做的有关于b站的综合热门数据可视化大屏
1.前言:运用数据处理和可视化库,实现数据多维度分析与可视化呈现,如视频类型占比、热门词汇词云图、播放量与评论量关系等,为用户提供直观数据分析结果,助于深入了解 B 站热门视频特征和用户喜好。2.技术坏境:Python+mysql+Pycharm软件+pyecharts实现了对b站热门视频大数据的可视化分析。
·
1.前言:运用数据处理和可视化库,实现数据多维度分析与可视化呈现,如视频类型占比、热门词汇词云图、播放量与评论量关系等,为用户提供直观数据分析结果,助于深入了解 B 站热门视频特征和用户喜好。
2.技术坏境:Python+mysql+Pycharm软件+pyecharts实现了对b站热门视频大数据的可视化分析。
3.总结:还有很多的不足,加油!
本设计成功实现基于 Python 的 B 站数据分析大屏。通过数据采集、存储、分析和可视化流程,深入挖掘热门视频数据价值。系统功能完善,能为用户提供有价值的数据洞察。B站热门视频与播放、评论、收藏、投币、分享、点赞几个因素都具有很强的相关性。我觉得我的可视化还可以做如下改善和优化:拓展数据分析维度,如用户行为分析、视频时长与播放量关系,评价的情感分析。改进可视化效果和交互体验,增加更多动态效果和用户自定义功能。
# 视频类型占比饼图函数 def make_pie(title_info, num): pie_chart = ( Pie(init_opts=opts.InitOpts(theme=theme_config)) .add( "", [list(z) for z in zip(title_info, num)], center=["35%", "50%"], ) .set_global_opts( title_opts=opts.TitleOpts(title="视频 top20 类型占比情况分布"), legend_opts=opts.LegendOpts(type_="scroll", pos_left="65%", orient="vertical"), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}")) ) return pie_chart # 返回饼图对象
def make_bar(names, counts): c = ( Bar(init_opts=opts.InitOpts(theme=theme_config)) # 正确使用主题 # 导入 x 轴数据 .add_xaxis(names) # 导入 y 轴数据 .add_yaxis("播放量对应的评论量", counts) .set_global_opts( # 设置标题 倾倒 xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)), # 标题内容 title_opts=opts.TitleOpts(title="b 站播放数据", subtitle="bili 当前 top10 评论"), ) ) return c
def make_qiu(top1_coin_value, top2_coin_value, top3_coin_value): Liquid() # 假设我们显示硬币数最多的前三个数据点 pic3 = ( Liquid(init_opts=opts.InitOpts(theme=theme_config)) .add("硬币数", [top1_coin_value / 100000.0], center=['20%', '50%'], is_outline_show=True, outline_border_distance=10, shape='diamond') .set_global_opts( title_opts=opts.TitleOpts(title=f"Top2 硬币数: {top1_coin_value}", pos_top='15%', pos_left='5%')) ) pic4 = ( Liquid(init_opts=opts.InitOpts(theme=theme_config)) .add("硬币数", [top2_coin_value / 1000000.0], center=['50%', '50%'], is_outline_show=True, outline_border_distance=10, shape='circle') .set_global_opts( title_opts=opts.TitleOpts(title=f"Top1 对应的硬币数: {top2_coin_value}", pos_top='15%', pos_left='35%')) ) pic5 = ( Liquid(init_opts=opts.InitOpts(theme=theme_config)) .add("硬币数", [top3_coin_value / 10000.0], center=['80%', '50%'], is_outline_show=True, outline_border_distance=10, shape='roundRect') .set_global_opts( title_opts=opts.TitleOpts(title=f"Top3 对应的硬币数: {top3_coin_value}", pos_top='15%', pos_left='65%')) ) grid = Grid(init_opts=opts.InitOpts(bg_color="#797A92")).add(pic3, grid_opts=opts.GridOpts(pos_bottom="60%")).add( pic4, grid_opts=opts.GridOpts( pos_bottom="30%")).add(pic5, grid_opts=opts.GridOpts()) return grid
# 条形图 def make_bar1(view, like, share): attr = list(range(1, len(view) + 1)) # 假设使用数字作为 x 轴标签 v1 = view v2 = like v3 = share bar = Bar(init_opts=opts.InitOpts(theme=theme_config)) # 使用新的方法添加 x 轴和 y 轴数据 bar.add_xaxis(attr) bar.add_yaxis("播放量", v1) bar.overlap( Bar().add_xaxis(attr).add_yaxis("点赞量", v2, category_gap="50%"), # 通过 overlap 添加多个 y 轴数据,并设置类别间距 ) bar.overlap( Bar().add_xaxis(attr).add_yaxis("分享量", v3, category_gap="50%"), # 同上 ) return bar
更多推荐
所有评论(0)