2022-11-28-大数据可视化“可视化国产/进口电影票房榜单”分析,特征维度大于50(二)

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 2022-11-28-大数据可视化“可视化国产/进口电影票房榜单”分析,特征维度大于50

国产电影上映首周票房表现 -Top50

bar_china = (
    Bar(init_opts=opts.InitOpts(width="1200px", height="600px", theme='light')) # 设置图表大小
    .add_xaxis(xaxis_data=data_china['电影'].tolist())  # x轴
    .add_yaxis(
        series_name="首映票房/亿",  #柱形图系列名称
        stack='stack1',
        y_axis=data_china['首映票房/亿'].tolist(), # 数据
        label_opts=opts.LabelOpts(is_show=False,position='top',formatter="{c} 亿"), # 显示数据标签
        itemstyle_opts={
            "normal": {
                "color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                    offset: 0,
                    color: '#126bae'
                }, {
                    offset: 1,
                    color: '#619ac3'
                }], false)""", ),
                "opacity": 0.8,
#                 "barBorderRadius": [20, 20, 0, 0],
                'shadowBlur': 4,
                'shadowColor': 'rgba(0, 0, 0, 0.3)',
                'shadowOffsetX': 5,
                'shadowOffsetY': 5,
                'borderColor': 'rgb(220,220,220)',
                'borderWidth': 1
            }}
        )
    .add_yaxis(
        series_name="首周票房/亿",  #柱形图系列名称
        stack='stack1',
        y_axis=data_china['首周票房/亿'].tolist(), # 数据
        label_opts=opts.LabelOpts(is_show=False,position='top',formatter="{c} 亿"), # 显示数据标签
        itemstyle_opts={
            "normal": {
                "color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                    offset: 0,
                    color: '#ea7293'
                }, {
                    offset: 1,
                    color: '#ec8aa4'
                }], false)""", ),
                "opacity": 0.8,
#                 "barBorderRadius": [20, 20, 0, 0],
                'shadowBlur': 4,
                'shadowColor': 'rgba(0, 0, 0, 0.3)',
                'shadowOffsetX': 5,
                'shadowOffsetY': 5,
                'borderColor': 'rgb(220,220,220)',
                'borderWidth': 1
            }}
        )
    .add_yaxis(
        series_name="首周末票房/亿",  #柱形图系列名称
        stack='stack1',
        y_axis=data_china['首周末票房/亿'].tolist(), # 数据
        label_opts=opts.LabelOpts(is_show=False,position='top',formatter="{c} 亿"), # 显示数据标签
        itemstyle_opts={
            "normal": {
                "color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                    offset: 0,
                    color: '#9eccab'
                }, {
                    offset: 1,
                    color: '#a4cab6'
                }], false)""", ),
                "opacity": 0.8,
#                 "barBorderRadius": [20, 20, 0, 0],
                'shadowBlur': 4,
                'shadowColor': 'rgba(0, 0, 0, 0.3)',
                'shadowOffsetX': 5,
                'shadowOffsetY': 5,
                'borderColor': 'rgb(220,220,220)',
                'borderWidth': 1
            }}
        )
    .reversal_axis()
    # .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(title_opts=opts.TitleOpts(title="国产电影上映首周票房表现 -Top50",# 标题
                                               title_textstyle_opts=opts.TextStyleOpts(font_size=20), #主标题字体大小
                                               subtitle="", # 次坐标轴
                                               pos_left='center'),# 标题位置
                    legend_opts=opts.LegendOpts(
                                             is_show=True,
                                             pos_top=30,
                                             orient="horizontal"
                                                             ),  # 不显示图例
                    tooltip_opts=opts.TooltipOpts(
                                             trigger="axis",
                                             axis_pointer_type="shadow"
                                             ),# 提示框
                    yaxis_opts=opts.AxisOpts(name='',
                                            type_='category',                                           
                                            #    axislabel_opts=opts.LabelOpts(rotate=30),
                                               ),
                     xaxis_opts=opts.AxisOpts(type_="value", # y轴类型
                                            #   max_=5000000,
                                              name='', # y轴名称
                                              name_location='middle', # y轴名称位置
                                              name_gap=70,  # y轴名称距离轴线距离
                                              axistick_opts=opts.AxisTickOpts(is_show=False),   # 刻度线
                                              axisline_opts=opts.AxisLineOpts(is_show=False),   # y轴线
                                              splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线
                                              axislabel_opts=opts.LabelOpts(formatter="{value}")), # 轴标签显示方式
                     datazoom_opts=opts.DataZoomOpts(is_zoom_lock=False,
                                                    orient="vertical")
                                               )
)
bar_china.render_notebook()

进口电影上映首周票房表现 -Top50

bar_foreign = (
    Bar(init_opts=opts.InitOpts(width="1200px", height="600px", theme='light')) # 设置图表大小
    .add_xaxis(xaxis_data=data_foreign['电影'].tolist())  # x轴
    .add_yaxis(
        series_name="首映票房/亿",  #柱形图系列名称
        stack='stack1',
        y_axis=data_foreign['首映票房/亿'].tolist(), # 数据
        label_opts=opts.LabelOpts(is_show=False,position='top',formatter="{c} 亿"), # 显示数据标签
        itemstyle_opts={
            "normal": {
                "color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                    offset: 0,
                    color: '#126bae'
                }, {
                    offset: 1,
                    color: '#619ac3'
                }], false)""", ),
                "opacity": 0.8,
#                 "barBorderRadius": [20, 20, 0, 0],
                'shadowBlur': 4,
                'shadowColor': 'rgba(0, 0, 0, 0.3)',
                'shadowOffsetX': 5,
                'shadowOffsetY': 5,
                'borderColor': 'rgb(220,220,220)',
                'borderWidth': 1
            }}
        )
    .add_yaxis(
        series_name="首周票房/亿",  #柱形图系列名称
        stack='stack1',
        y_axis=data_foreign['首周票房/亿'].tolist(), # 数据
        label_opts=opts.LabelOpts(is_show=False,position='top',formatter="{c} 亿"), # 显示数据标签
        itemstyle_opts={
            "normal": {
                "color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                    offset: 0,
                    color: '#ea7293'
                }, {
                    offset: 1,
                    color: '#ec8aa4'
                }], false)""", ),
                "opacity": 0.8,
#                 "barBorderRadius": [20, 20, 0, 0],
                'shadowBlur': 4,
                'shadowColor': 'rgba(0, 0, 0, 0.3)',
                'shadowOffsetX': 5,
                'shadowOffsetY': 5,
                'borderColor': 'rgb(220,220,220)',
                'borderWidth': 1
            }}
        )
    .add_yaxis(
        series_name="首周末票房/亿",  #柱形图系列名称
        stack='stack1',
        y_axis=data_foreign['首周末票房/亿'].tolist(), # 数据
        label_opts=opts.LabelOpts(is_show=False,position='top',formatter="{c} 亿"), # 显示数据标签
        itemstyle_opts={
            "normal": {
                "color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                    offset: 0,
                    color: '#9eccab'
                }, {
                    offset: 1,
                    color: '#a4cab6'
                }], false)""", ),
                "opacity": 0.8,
#                 "barBorderRadius": [20, 20, 0, 0],
                'shadowBlur': 4,
                'shadowColor': 'rgba(0, 0, 0, 0.3)',
                'shadowOffsetX': 5,
                'shadowOffsetY': 5,
                'borderColor': 'rgb(220,220,220)',
                'borderWidth': 1
            }}
        )
    .reversal_axis()
    # .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(title_opts=opts.TitleOpts(title="进口电影上映首周票房表现 -Top50",# 标题
                                               title_textstyle_opts=opts.TextStyleOpts(font_size=20), #主标题字体大小
                                               subtitle="", # 次坐标轴
                                               pos_left='center'),# 标题位置
                    legend_opts=opts.LegendOpts(
                                             is_show=True,
                                             pos_top=30,
                                             orient="horizontal"
                                                             ),  # 不显示图例
                    tooltip_opts=opts.TooltipOpts(
                                             trigger="axis",
                                             axis_pointer_type="shadow"
                                             ),# 提示框
                    yaxis_opts=opts.AxisOpts(name='',
                                            type_='category',                                           
                                            #    axislabel_opts=opts.LabelOpts(rotate=30),
                                               ),
                     xaxis_opts=opts.AxisOpts(type_="value", # y轴类型
                                            #   max_=5000000,
                                              name='', # y轴名称
                                              name_location='middle', # y轴名称位置
                                              name_gap=70,  # y轴名称距离轴线距离
                                              axistick_opts=opts.AxisTickOpts(is_show=False),   # 刻度线
                                              axisline_opts=opts.AxisLineOpts(is_show=False),   # y轴线
                                              splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线
                                              axislabel_opts=opts.LabelOpts(formatter="{value}")), # 轴标签显示方式
                     datazoom_opts=opts.DataZoomOpts(is_zoom_lock=False,
                                                    orient="vertical")
                                               )
)
bar_foreign.render_notebook()

电影票房三十日时段详情

data_movie_time = pd.read_excel(r"/home/mw/input/movie7110/电影票房三十日时段详情.xlsx")
data_movie_time["当前票房"] = data_movie_time["当前票房"].apply(lambda x: round(x/10000000, 2))
data_movie_time["当前场次"] = data_movie_time["当前场次"].apply(lambda x: round(x/10000, 2))
data_movie_time["当前人次"] = data_movie_time["当前人次"].apply(lambda x: round(x/1000000, 2))
data_movie_time = data_movie_time.rename(columns={"当前票房": "当前票房/千万", "当前场次": "当前场次/万", "当前人次": "当前人次/百万"})
data_movie_time.head(2)
movie_chang = data_movie_time[data_movie_time["电影"] == "长津湖"]

长津湖上映后三十日电影票房表现

line = Line(
    init_opts=opts.InitOpts(
        theme='light',
        width='1000px',
        height='600px')
)
line.add_xaxis(
    movie_chang["日期"].tolist()
)
colums = ["当前票房/千万", "当前人次/百万", "当前场次/万"]
for i in range(3):
    line.add_yaxis(
        colums[i],
        movie_chang[colums[i]],
        is_symbol_show=False,
        is_smooth=True,
        is_selected=True,
        areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
        label_opts=opts.LabelOpts(is_show=False),
        z=100,
        linestyle_opts={
                "normal": {
                    "shadowColor": 'rgba(0, 0, 0, .5)',
                    "shadowBlur": 0,
                    "shadowOffsetY": 1,
                    "shadowOffsetX": 1,
                },
            },
    )
line.set_global_opts(
    xaxis_opts=opts.AxisOpts(
        boundary_gap=False,
        axislabel_opts=opts.LabelOpts(margin=30, color="black"),
        axistick_opts=opts.AxisTickOpts(is_show=False),),
    yaxis_opts=opts.AxisOpts(
        name='',
        axisline_opts=opts.AxisLineOpts(is_show=True),
        axistick_opts=opts.AxisTickOpts(is_show=False),
        splitline_opts=opts.SplitLineOpts(
            is_show=True,
            linestyle_opts=opts.LineStyleOpts(color='#483D8B'))
    ),
    tooltip_opts=opts.TooltipOpts(
        is_show=True, trigger='axis', axis_pointer_type='cross'),
    title_opts=opts.TitleOpts(title="长津湖上映后三十日电影票房表现",# 标题
                            title_textstyle_opts=opts.TextStyleOpts(font_size=18), #主标题字体大小
                            subtitle="2021-09-30~2021-10-30", # 次坐标轴
                            pos_left='center'),# 标题位置
    legend_opts=opts.LegendOpts(
                                is_show=True,
                                pos_top=45,
                                orient="horizontal"
                                                ),  # 不显示图例
    graphic_opts=[
                opts.GraphicGroup(
                            graphic_item=opts.GraphicItem(id_='1',left="center", top="center", z=-1),
                            children=[
                                    opts.GraphicImage(graphic_item=opts.GraphicItem(id_="logo",
                                                                                    left='center',
                                                                                    z=-1),
                                                      graphic_imagestyle_opts=opts.GraphicImageStyleOpts(
                                        image="https://img2.baidu.com/it/u=3979355417,3562690433&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=388",
                                        width=1000,
                                        height=600,
                                        opacity=0.5,)
                                    )
                                ]
                                )
                                ]
)
line.set_series_opts(
    markarea_opts=opts.MarkAreaOpts(
        is_silent=True,
        label_opts=opts.LabelOpts(position='bottom', color='#000000'),
        itemstyle_opts=opts.ItemStyleOpts(color='#1E90FF', opacity=0.2),
        data=[
            opts.MarkAreaItem(name="正式上映\n国庆档", x=("2021-09-30", "2021-10-01")),
            opts.MarkAreaItem(name="高峰期", x=("2021-10-05", "2021-10-07")),
            opts.MarkAreaItem(name="第三周\n小高峰", x=("2021-10-15", "2021-10-17")),
        ]
    ),
)
line.set_colors(colors=['#80FFA5', '#00DDFF', '#FF0087'])
line.render_notebook()

长津湖电影评分

chart = Gauge(
)
chart.add(
    "",
    [("猫眼评分", 9.5)],
    max_=10,
    start_angle=200,
    end_angle=-20,
    pointer=opts.GaugePointerOpts(
        is_show=True
    ),
    itemstyle_opts=opts.ItemStyleOpts(
        color='rgba(50, 163, 107, 0.3)'
    ),
    detail_label_opts=opts.GaugeDetailOpts(
        border_radius=8,
        offset_center=[0, '15%'],
        font_size=50,
        font_weight='bolder',
        formatter='{value}',
    ),
    axisline_opts=opts.AxisLineOpts(
        is_show=True,
        linestyle_opts=opts.LineStyleOpts(
            width=30,
            color=[(0.8, "#67e0e3"), (0.98, "#D4587A"), (1, "#67e0e3")]
        )
    ),
    title_label_opts=opts.GaugeTitleOpts(
        color='rgba(217, 48, 118, 0.9)',
        offset_center=[0, '-35%'],
        font_size=20,
        font_weight='bolder',
    )
)
chart.set_global_opts(
    title_opts=opts.TitleOpts(
        title="长津湖",
        pos_right='0%',
        pos_bottom='30%',
        title_textstyle_opts=opts.TextStyleOpts(
            color='rgba(217, 48, 118, 0.1)',
            font_size=80
        )
    ),
)
chart.render_notebook()
chart_1 = Gauge(
    # init_opts=opts.InitOpts(
    #     width='500px',
    #     height='500px'
    # )
)
chart_1.add(
    "",
    [("豆瓣评分", 7.4)],
    max_=10,
    start_angle=200,
    end_angle=-20,
    pointer=opts.GaugePointerOpts(
        is_show=True
    ),
    itemstyle_opts=opts.ItemStyleOpts(
        color='rgba(50, 163, 107, 0.3)'
    ),
    detail_label_opts=opts.GaugeDetailOpts(
        border_radius=8,
        offset_center=[0, '15%'],
        font_size=50,
        font_weight='bolder',
        formatter='{value}',
    ),
    axisline_opts=opts.AxisLineOpts(
        is_show=True,
        linestyle_opts=opts.LineStyleOpts(
            width=30,
            color=[(0.7, "#37a2da"), (0.8, "#D4587A"), (1, "#37a2da")]
        )
    ),
    title_label_opts=opts.GaugeTitleOpts(
        color='rgba(217, 48, 118, 0.9)',
        offset_center=[0, '-35%'],
        font_size=20,
        font_weight='bolder',
    )
)
chart_1.set_global_opts(
    title_opts=opts.TitleOpts(
        title="长津湖",
        pos_right='0%',
        pos_bottom='30%',
        title_textstyle_opts=opts.TextStyleOpts(
            color='rgba(217, 48, 118, 0.1)',
            font_size=80
        )
    ),
)
chart_1.render_notebook()


分析总结

①在全部的榜单类别top50中排在前面的都是进五年新出的电影,其中第一名是2021年上映的长津湖,说明电影行业的发展是非常快速的,推陈出新的要求是广大影迷朋友们所追求的。

②排在榜单前六的都是国产电影,说明大家对国产电影的喜爱程度非常之高,其中排在前二的是不可多得的主旋律好电影,非常受大家的追捧。

③在结合票房分析的同时也要结合每一部电影它的组成,可以看到战狼的票价是排在前几的电影中最低的,同时也是场均人次最高的,说明战狼这部电影的电影票房是实打实的非常有质量的票房数据,非常说明战狼这部电影的影响力和受大家喜爱程度。

④在进口的电影中,可以非常明显的看到几个场均人次异常突出的几部电影,如阿凡达,变形金刚三和泰坦尼克号,可以看出来这三部电影的上座率非常高,说明质量非常的好,不愧是经典中的经典。

⑤在国产电影和进口电影的对拼中可以看到在2018年之前进口电影的市场占有率是高于国产电影的,到2018年国产电影成长到足够抗衡进口电影,如今2021年国产电影更是已经碾压进口电影,占领大部分中国市场。

⑥可以看到国产电影和进口电影都有一个经久不衰的主题,那就是动作篇,可以想到动作片是非常受全世界影迷的喜爱的,其中最明显的差距是国产电影中的科幻片很少,仍需要不断地发展才能满足更多影迷,不同影迷的需要。

⑦在不同的平台上长津湖的评分是不同的,高也好低也好,不同的平台的用户的口味是不同的,这就是电影的魅力所在,让不同的人体验到不同的感受。

总结

只要是好的电影,现今的观众都会予以支持。

创作者在生产创作阶段就充分考虑目标受众和目标受众的需求。具有强情节、强情绪、强话题等核心竞争力的影片,哪怕前期热度不具优势,映后也会凭借优质的内容不断发酵,激发二轮观影动机;对于能够满足市场刚需的内容,像动作、喜剧、悬疑犯罪、亲子动画等类型片,也是能够持续号召目标受众观影的常备题材;基于优质的类型片持续运作、打造具有号召力的IP或系列电影,则能将观影动机前置;通过强化电影的社交属性,比如通过打造仪式感来附加观众额外的观影动机,甚至能够为市场培育出新的档期。

总而言之,观众并非不爱看电影了,只是观众更加倾向选择好电影,只要是内容足够优秀,在哪里都是档期。

挑战就是新的起点。目前,8万块银幕已经遍布中国的大城小镇,不断提升的观影环境,日益丰富的电影传播渠道和购票的便利性等,都是中国电影高质量发展的重要保障。“电影是综合性艺术,与国家的综合实力联系紧密。依托发达的经济、繁荣的文化、先进的科技,中国电影理应进入品质年代,我们有理由相信中国电影未来可期。”中国电影家协会副主席任仲伦说。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
1月前
|
数据可视化 搜索推荐 大数据
基于python大数据的北京旅游可视化及分析系统
本文深入探讨智慧旅游系统的背景、意义及研究现状,分析其在旅游业中的作用与发展潜力,介绍平台架构、技术创新、数据挖掘与服务优化等核心内容,并展示系统实现界面。
|
1月前
|
存储 数据可视化 数据挖掘
基于大数据的电影可视化、推荐与票房预测系统
本系统基于Python与Flask框架,结合Echarts等技术,实现电影数据的采集、存储与可视化展示。通过对票房、评分、评论等数据的分析,生成图表与词云,帮助用户直观理解电影市场趋势,支持决策制定与观影推荐,提升电影行业的数据分析能力与用户体验。
|
13天前
|
存储 SQL 分布式计算
终于!大数据分析不用再“又要快又要省钱”二选一了!Dataphin新功能太香了!
Dataphin推出查询加速新功能,支持用StarRocks等引擎直连MaxCompute或Hadoop查原始数据,无需同步、秒级响应。数据只存一份,省成本、提效率,权限统一管理,打破“又要快又要省”的不可能三角,助力企业实现分析自由。
119 49
|
18天前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
2月前
|
机器学习/深度学习 搜索推荐 算法
基于大数据的电影点评与推荐
本系统基于大数据与人工智能技术,构建电影点评与推荐平台,提供个性化电影推荐、用户点评及社交互动功能。通过分析用户行为与电影属性,优化推荐算法,提升用户体验与满意度,促进电影产业发展与市场活跃。
基于大数据的电影点评与推荐
|
27天前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。
|
1月前
|
机器学习/深度学习 搜索推荐 算法
基于python大数据的口红商品分析与推荐系统
本研究基于Python大数据技术,构建口红商品分析与推荐系统,旨在解决口红市场产品同质化与消费者选择困难问题。通过分析颜色、质地、价格等多维度数据及用户行为,实现个性化推荐,提升购物体验与品牌营销效率,推动美妆行业数字化转型,具有重要现实意义与市场价值。
|
8天前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
74 14
|
2月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
75 0
|
3月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
93 4

热门文章

最新文章