码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Pyecharts | 《白蛇2:青蛇劫起》20000+数据分析可视化


    文章目录

    • 🏳️‍🌈 1. 导入模块
    • 🏳️‍🌈 2. Pandas数据处理
      • 2.1 读取数据
      • 2.2 数据大小
      • 2.3 查看索引、数据类型和内存信息
    • 🏳️‍🌈 3. Pyecharts数据可视化
      • 3.1 评分等级分布
      • 3.2 每日评论量
      • 3.3 每小时评论量
      • 3.4 一周各天评论量
      • 3.5 日历图
      • 3.6 角色热度
      • 3.7 观众地域分布
      • 3.8 影评词云
    • 🏳️‍🌈 12. 在线运行地址
    • 推荐阅读

    大家好,我是 👉【Python当打之年(点击跳转)】

    本期为大家带来 20000+条影评数据 ,分析一下《白蛇2:青蛇劫起》 这部动漫的观影情况,看看大家对国产动漫都有哪些看法,希望对小伙伴们有所帮助。

    涉及到的库:

    • Pandas — 数据处理
    • Pyecharts — 数据可视化
    • jieba — 分词
    • collections — 数据统计

    可视化部分:

    • Line — 折线图
    • Bar — 柱状图
    • Pie — 饼状图
    • Calendar— 日历图
    • WordCloud — 词云图
    • Geo — 地图

    《白蛇2:青蛇劫起》剧情简介:
    主要讲述南宋末年,小白为救许仙水漫金山,终被法海压在雷峰塔下。小青则意外被法海打入诡异的修罗城幻境。几次危机中小青被神秘蒙面少年所救,小青带着出去救出小白的执念历经劫难与成长,同蒙面少年一起寻找离开办法的故事。
    在这里插入图片描述

    感兴趣的小伙伴也可以看一下第一部:《白蛇:缘起》,两部都不错的。好了,进入正题。

    🏳️‍🌈 1. 导入模块

    import jieba
    import stylecloud
    import pandas as pd
    from PIL import Image
    from collections import Counter
    from pyecharts.charts import Geo
    from pyecharts.charts import Bar
    from pyecharts.charts import Line
    from pyecharts.charts import Pie
    from pyecharts.charts import Calendar
    from pyecharts.charts import WordCloud
    from pyecharts import options as opts
    from pyecharts.commons.utils import JsCode
    from pyecharts.globals import ThemeType,SymbolType,ChartType
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    🏳️‍🌈 2. Pandas数据处理

    2.1 读取数据

    df = pd.read_excel("白蛇2.xlsx")
    df.head()
    
    • 1
    • 2

    在这里插入图片描述

    2.2 数据大小

    df.shape
    (20584, 6)
    
    • 1
    • 2

    一共有20584条影评数据,数据时间分布2021-8-01至2021-08-31。

    2.3 查看索引、数据类型和内存信息

    df.info()
    
    • 1

    在这里插入图片描述

    用户名存在一条缺失,其他各列数据完整,本次分析未用到该数据,所有暂不处理。

    🏳️‍🌈 3. Pyecharts数据可视化

    3.1 评分等级分布

    color_js = """new echarts.graphic.LinearGradient(0, 0, 1, 0,
        [{offset: 0, color: '#009ad6'}, {offset: 1, color: '#ed1941'}], false)"""
    
    df_star = df.groupby('评分')['评论'].count()
    df_star = df_star.sort_values(ascending=True)
    x_data = [str(i) for i in list(df_star.index)]
    y_data = df_star.values.tolist()
    b1 = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis('',y_data,itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
        .reversal_axis()
        .set_series_opts(label_opts=opts.LabelOpts(position='right')) 
        .set_global_opts(
            yaxis_opts=opts.AxisOpts(name='评分等级'),
            xaxis_opts=opts.AxisOpts(name='人/次'),
            title_opts=opts.TitleOpts(title='评分等级分布',pos_left='45%',pos_top="5%"),
            legend_opts=opts.LegendOpts(type_="scroll", pos_left="85%",pos_top="28%",orient="vertical")
        )
    )
    
    df_star = df.groupby('评分')['评论'].count()
    x_data = [str(i) for i in list(df_star.index)]
    y_data = df_star.values.tolist()
    p1 = (
        Pie(init_opts=opts.InitOpts(width='800px', height='600px'))
        .add(
     '',
        [list(z) for z in zip(x_data, y_data)],
        radius=['10%', '30%'],
     center=['65%', '60%'],
        label_opts=opts.LabelOpts(is_show=True),
        ) 
        .set_colors(["blue", "green", "#800000", "red", "#000000", "orange", "purple", "red", "#000000", "orange", "purple"])
        .set_series_opts(label_opts=opts.LabelOpts(formatter='评分{b}: {c} \n ({d}%)'),position="outside") 
    )
    b1.overlap(p1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    在这里插入图片描述

    可以看到,5.0的评分占比达到了56%,超过了半数观众打出了五星好评,四星以上好评更是达到了85%之多,看来大家对这部动漫还是比较认可的。

    3.2 每日评论量

    2021.08.01-2021.08.31 每天评论量分布:

    df_day = df.groupby(df['评论时间'].dt.day)['评论'].count()
    day_x_data = [str(i) for i in list(df_day.index)]
    day_y_data = df_day.values.tolist()
     
    line1 = (
        Line(init_opts=opts.InitOpts(bg_color=JsCode(color_js)))
        .add_xaxis(xaxis_data=day_x_data)
        .add_yaxis(
            series_name="",
            y_axis=day_y_data,
            is_smooth=True,
            is_symbol_show=True,
            symbol="circle",
            symbol_size=6,
            linestyle_opts=opts.LineStyleOpts(color="#fff"),
            label_opts=opts.LabelOpts(is_show=True, position="top", color="white"),
            itemstyle_opts=opts.ItemStyleOpts(
                color="red", border_color="#fff", border_width=3
            ),
            tooltip_opts=opts.TooltipOpts(is_show=False),
            areastyle_opts=opts.AreaStyleOpts(color=JsCode(area_color_js), opacity=1),
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title="八月每日评论量",
                pos_top="5%",
                pos_left="center",
                title_textstyle_opts=opts.TextStyleOpts(color="#fff", font_size=16),
            ),
            xaxis_opts=opts.AxisOpts(
                type_="category",
                boundary_gap=True,
                axislabel_opts=opts.LabelOpts(margin=30, color="#ffffff63"),
                axisline_opts=opts.AxisLineOpts(is_show=False),
                axistick_opts=opts.AxisTickOpts(
                    is_show=True,
                    length=25,
                    linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
                ),
                splitline_opts=opts.SplitLineOpts(
                    is_show=True, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f")
                ),
            ),
            yaxis_opts=opts.AxisOpts(
                type_="value",
                position="left",
                axislabel_opts=opts.LabelOpts(margin=20, color="#ffffff63"),
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(width=2, color="#fff")
                ),
                axistick_opts=opts.AxisTickOpts(
                    is_show=True,
                    length=15,
                    linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
                ),
                splitline_opts=opts.SplitLineOpts(
                    is_show=True, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f")
                ),
            ),
            legend_opts=opts.LegendOpts(is_show=False),
        )
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    在这里插入图片描述

    每天评论量在8月1日达到峰值(数据不包含7月份),随着时间的推移评论数量逐渐减少,这也符合一般电影观影规律。

    3.3 每小时评论量

    统计的是2021.08.01-2021.08.31这31天每小时天评论量总和(如果感兴趣可以单独查看某一天24小时影评数量分布,按日期筛选即可):
    在这里插入图片描述

    从小时分布来看,大家一般选择在下午到晚上评论的比较多,尤其是在17:00以后,大家在工作时段还都是比较敬业的。第二次评论峰值在22:00,这个时间段是熬夜青年比较活跃的时段,小伙伴们的作息时间都比较靠后。

    3.4 一周各天评论量

    统计的是2021.08.01-2021.08.31这31天每周各天评论量的总和:
    在这里插入图片描述

    从一周各天数据分布来看,每周一和每周天是大家评论的活跃时段,很有意思,一周的开始和一周的结束,在休闲中开始,在休闲中结束。

    3.5 日历图

    日历图可以更直观的看到一个月内每天和每星期的评论量:
    在这里插入图片描述

    3.6 角色热度

    主要人物:小白、小青、许仙、法海、司马、孙姐、牛头帮主、蒙面男子、宝青坊主、书生等:

    在这里插入图片描述

    3.7 观众地域分布

    在这里插入图片描述

    从地域分布图来看,观众主要分布在北京、天津、上海、重庆、四川、广东、云南等地。

    3.8 影评词云

    在这里插入图片描述

    🏳️‍🌈 12. 在线运行地址

    在线运行地址(含全部代码):
    https://www.heywhale.com/mw/project/6132e5898608050017004a5f


    文章首发:微信公众号 “Python当打之年” ,Python编程技巧推送,希望大家可以喜欢。

    以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享(注明出处)让更多人知道。

    推荐阅读

    • ⚽ 【Matplotlib | 世界足球俱乐部排名可视化】
    • 🏭 【Pandas+Pyecharts | 2022年世界500强数据分析可视化】
    • 📲 【Pandas+Pyecharts | 快手APP大学生用户数据分析可视化】
    • 🥤 【Pandas+Pyecharts | 上海市餐饮数据分析可视化】
    • 👨‍🎓 【Pandas+Pyecharts | 山东省高考考生数据分析可视化】
    • 🚗 【Pandas+Pyecharts | 40000+汽车之家数据分析可视化】
    • 🛒 【Pandas+Pyecharts | 20000+天猫订单数据可视化】
    • 🏠 【Pandas+Pyecharts | 广州市已成交房源信息数据可视化】
    • 🏫 【Pandas+Pyecharts | 考研信息数据可视化】
    • 💸 【Pandas+Pyecharts | 某平台招聘信息数据可视化】
    • 🏥 【Pandas+Pyecharts | 医院药品销售数据可视化】
    • 💰️ 【Pyecharts | 比特币每日价格动态可视化】
    • 🥮 【可视化 | Python中秋月饼销量分析,这些口味才是yyds!】
    • 🎦 【Pyecharts | 《白蛇2:青蛇劫起》20000+数据分析可视化】
    • 💑 【Pyecharts | 历年全国各地民政局登记数据分析+可视化】
    • 🌏 【Pandas+Pyecharts | 全国热门旅游景点数据分析+可视化】
    • 🏆 【Pandas+Pyecharts | 2020东京奥运会奖牌数据可视化】
    • 🏹 【Pandas常用基础操作指令汇总 】
    • 🎯 【pandas + pyecharts | ADX游戏广告投放渠道综合分析】
    • 🕔 【Schedule + Pyecharts | 时间序列图(动态轮播图)】
    • 🏠 【Pandas+Pyecharts | 北京某平台二手房数据分析+可视化】
    • 🏫 【Pandas+Pyecharts | 2021中国大学综合排名分析+可视化】
    • 🎦 【爬虫 | Python爬取豆瓣电影Top250 + 数据可视化】
    • 📡 【技巧 | Python创建自己的高匿代理IP池】

  • 相关阅读:
    微服务架构 | 消息队列 - [常见坑] TBC...
    KVM...
    不强迫登录!Apipost用着真爽!
    swift语言用哪种库适合做爬虫?
    Java框架 Spring5--事务
    springboot配置多数据源
    亚马逊EC2服务器搭建Linux系统宝塔环境
    【20221114】【每日一题】复原IP地址
    使用百度飞桨EasyDL实现AI文章自动分类
    Java游戏核心架构之通信架构
  • 原文地址:https://blog.csdn.net/weixin_42152811/article/details/127565499
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号