2022-11-28-大数据可视化“可视化国产/进口电影票房榜单”分析,特征维度大于50
创始人
2024-02-26 15:40:41
0

可视化国产/进口电影票房榜单

  • 前言
  • 数据分析
  • 数据可视化过程
  • 分析总结



前言

党的十八大以来,国产电影产业与事业快速发展,创作水平不断提高,题材类型丰富多元,受众口碑不断提升,在市场竞争中表现愈发突出,已成为广大人民群众首选的文化消费形式。国产电影的高质量发展,有着多重的表现。
  首先是主旋律电影的复苏。既往,主旋律似乎和院线电影难以相容,取得商业成功的主旋律电影少之又少,而一些商业电影的价值取向也似乎与主旋律貌合神离。近年来,随着国内电影工业水平不断提升,电影作品对主旋律的表达方式也更为细腻深入,观众对主旋律影片的认可度逐渐提高。诸如2016年的《湄公河行动》、2018年的《红海行动》、2019年的《我和我的祖国》、2020年的《八佰》《我和我的家乡》、2021年的《长津湖》《中国医生》等影片,充分吸纳了类型片的叙事手段,凭借其精良的制作与深厚的情怀,在票房、口碑上实现了双丰收,《长津湖》更是打破了影史票房纪录,创造了中国电影的奇迹。
  其次是商业电影的繁盛。过去的十年是中国电影扩展市场,开疆拓土的十年。2012年以来,电影市场保持着高速增长的态势,2012年全国银幕数有13118块,到2021年达到了82248块,基本覆盖了全国的城市与城镇;2019年全国总票房达到了642亿元,其后由于疫情影响票房总量有一定程度下降,但也超越北美成为世界第一。从2012年《人再囧途之泰囧》拿下12亿票房成为首部超十亿票房国产电影并获得当年票房冠军之后,国产电影开始频频打破票房纪录,在好莱坞电影的冲击下茁壮成长,让引进片称霸票房榜的时代成为了过去式。2015年,《捉妖记》取得24亿票房;2016年,《美人鱼》取得33亿票房;2017年,《战狼2》取得56亿票房;再到《长津湖》的57亿票房,国产电影票房冠军几经易手,人们对国产电影的信心也与日俱增。在此期间,也出现了《心花路放》《夏洛特烦恼》《流浪地球》《你好,李焕英》《唐人街探案》系列等商业表现优秀的电影作品,国产电影的市场一路向好。
为了进一步将国产电影和进口电影的票房进行一个更好地对比,此次选题用大数据可视化的方式直观的将数据展示出来,可视化主要使用 pyecharts >= 1.9。


数据分析

数据集概况

数据集分为四个文件,分别是电影票房表现概览、票房榜、电影票房三十日时段趋势数据和电影票房三十日时段详情。

数据维度:

电影票房表现概览维度31,数据量100:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
票房榜维度8,数据量150在这里插入图片描述
电影票房三十日时段趋势数据维度16,数据量4620
在这里插入图片描述
电影票房三十日时段详情数据维度15,数据量3392
在这里插入图片描述


数据可视化过程

引包

import numpy as np
import pandas as pd
from collections import Counter
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType
from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts
import datetime

票房榜数据概览

data = pd.read_excel(r"/home/mw/input/movie7110/票房榜.xlsx")
data.head(1)

在这里插入图片描述票房榜数据字段处理

data["年份"] = data["上映日期"].apply(lambda x: str(x.split("-")[0]))
data["票房"] = data["票房"].apply(lambda x: round(x/100000000, 2))
data = data.rename(columns={"票房":"票房/亿"})
data.head(1)

在这里插入图片描述电影票房表现数据概览

data_haed = pd.read_excel(r"/home/mw/input/movie7110/电影票房表现概览.xlsx")
data_haed.head(1)

在这里插入图片描述电影票房数据字段处理

data_haed_all = data.merge(data_haed, how="left", on=['EnMovieID'])
data_haed_all["首映票房"] = data_haed_all["首映票房"].apply(lambda x: round(x/100000000, 2))
data_haed_all["首周票房"] = data_haed_all["首周票房"].apply(lambda x: round(x/100000000, 2))
data_haed_all["首周末票房"] = data_haed_all["首周末票房"].apply(lambda x: round(x/100000000, 2))
data_haed_all = data_haed_all.rename(columns={"电影_x": "电影", "首映票房": "首映票房/亿", "首周票房": "首周票房/亿", "首周末票房": "首周末票房/亿"})
data_haed_all.info()
data_haed_all = data_haed_all.drop(labels=["EnMovieID","DBOMovieID","EFMTMovieID","电影_y","GenreMainID"],axis=1)
colums = list(data_haed_all)
print(colums)
data_all = data_haed_all[data_haed_all["榜单类别"] == "全部"]
data_china = data_haed_all[data_haed_all["榜单类别"] == "国产"]
data_foreign = data_haed_all[data_haed_all["榜单类别"] == "进口"]data_cat = [data_all, data_china, data_foreign]
cat = ["全部", "国产","进口"]

在这里插入图片描述在这里插入图片描述榜单类别 - 国产/进口 - TOP50

tab = Tab()headers = columsrows_china = data_china[colums].apply(lambda x: list(x), axis=1).values.tolist()rows_foreign = data_foreign[colums].apply(lambda x: list(x), axis=1).values.tolist()attributes = {"class": "fl-table", "style": "margin: 0 auto"}  # 居中显示table_china = Table()
attributes = {"class": "fl-table", "style": "margin: 0 auto"}  # 居中显示
table_china.add(headers, rows_china, attributes)
table_china.set_global_opts(title_opts=ComponentTitleOpts(title=f"榜单类别 - 国产 - TOP50", subtitle="")
)table_foreign = Table()
attributes = {"class": "fl-table", "style": "margin: 0 auto"}  # 居中显示
table_foreign.add(headers, rows_foreign, attributes)
table_foreign.set_global_opts(title_opts=ComponentTitleOpts(title=f"榜单类别 - 进口 - TOP50", subtitle="")
)table = Table()
table.add([], [], attributes)
table.set_global_opts(title_opts=ComponentTitleOpts(title="键盘左右键移动视图查看", subtitle="")
)tab.add(table_china, "国产")
tab.add(table_foreign, "进口")
tab.add(table, "点击预览")tab.render_notebook()

电影票房榜单 - TOP50

line_max = max(max(data_all['场均人次'].tolist()), max(data_all['平均票价'].tolist()))bar_max = max(data_all['票房/亿'].tolist())bar_all = (Bar(init_opts=opts.InitOpts(width="1000px", height="600px",theme='light'))  # 设置图表大小.add_xaxis(xaxis_data=data_all['电影'].tolist())  # x轴.add_yaxis(series_name="票房/亿",  # 柱形图系列名称y_axis=data_all['票房/亿'].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: '#ee3f4d'}, {offset: 1,color: '#eea2a4'}], false)""", ),"opacity": 0.8,
#                 "barBorderRadius": [20, 20, 0, 0],'shadowBlur': 8,'shadowColor': 'rgba(0, 0, 0, 0.4)','shadowOffsetX': 10,'shadowOffsetY': 10,'borderColor': 'rgb(220,220,220)','borderWidth': 1}}).extend_axis(  # 设置次坐标轴yaxis=opts.AxisOpts(name="",  # 次坐标轴名称type_="value",  # 次坐标手类型min_=-2 * line_max,  # 最小值max_=2 * line_max,  # 最大值is_show=False,  # 是否显示axisline_opts=opts.AxisLineOpts(is_show=False,  # y轴线不显示linestyle_opts=opts.LineStyleOpts(color='#2486b9')),  # 设置线颜色, 字体颜色也变axistick_opts=opts.AxisTickOpts(is_show=False),  # 刻度线不显示axislabel_opts=opts.LabelOpts(formatter="{value}"),  # 次坐标轴数据显示格式)).set_global_opts(title_opts=opts.TitleOpts(title="电影票房 - top50",  # 标题title_textstyle_opts=opts.TextStyleOpts(font_size=20),  # 主标题字体大小subtitle="国产/进口",  # 次坐标轴pos_left='center',pos_top='0.8%'),  # 标题位置legend_opts=opts.LegendOpts(is_show=True,pos_top=50,orient="horizontal",),  # 不显示图例tooltip_opts=opts.TooltipOpts(trigger="axis",axis_pointer_type="shadow"),  # 提示框xaxis_opts=opts.AxisOpts(name='',type_='category',axislabel_opts=opts.LabelOpts(rotate=360),),yaxis_opts=opts.AxisOpts(type_="value",  # y轴类型max_=bar_max,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))
)line_all = (Line().add_xaxis(xaxis_data=data_all['电影'].tolist())  # x轴.add_yaxis(series_name="场均人次",  # 名称yaxis_index=1,  # 次坐标is_smooth=True,  # 线条样式  , 是否设置成圆滑曲线y_axis=data_all['场均人次'].tolist(),itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#2486b9'}, {offset: 1,color: '#FF00FF'}], false)""", ),"opacity": 0.7,"barBorderRadius": [45, 45, 45, 45],"shadowColor": 'rgb(0, 160, 221)',}},linestyle_opts={'normal': {'width': 3,'shadowColor': 'rgba(0, 0, 0, 0.5)','shadowBlur': 5,'shadowOffsetY': 10,'shadowOffsetX': 10,'curve': 0.5,'color': '#2486b9'}},label_opts=opts.LabelOpts(is_show=False),  # 显示数据标签).add_yaxis(series_name="平均票价",  # 名称yaxis_index=1,  # 次坐标is_smooth=True,  # 线条样式  , 是否设置成圆滑曲线y_axis=data_all['平均票价'].tolist(),itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#1a6840'}, {offset: 1,color: '#66c18c'}], false)""", ),"opacity": 0.7,"barBorderRadius": [45, 45, 45, 45],"shadowColor": 'rgb(0, 160, 221)',}},linestyle_opts={'normal': {'width': 3,'shadowColor': 'rgba(0, 0, 0, 0.5)','shadowBlur': 5,'shadowOffsetY': 10,'shadowOffsetX': 10,'curve': 0.5,'color': '#66c18c'}},label_opts=opts.LabelOpts(is_show=False),  # 显示数据标签)
)
bar_all.overlap(line_all)  # 图表组合bar_all.render_notebook()

在这里插入图片描述在这里插入图片描述 电影票房榜单 - 国产/进口 - TOP50


tab_rank = Tab()
for i in range(1,3):line_max = max(max(data_cat[i]['场均人次'].tolist()), max(data_cat[i]['平均票价'].tolist()))bar_max = max(data_cat[i]['票房/亿'].tolist())bar1 = (Bar(init_opts=opts.InitOpts(width="1000px", height="600px",theme='light'))  # 设置图表大小.add_xaxis(xaxis_data=data_cat[i]['电影'].tolist())  # x轴.add_yaxis(series_name="票房/亿",  # 柱形图系列名称y_axis=data_cat[i]['票房/亿'].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: '#ee3f4d'}, {offset: 1,color: '#eea2a4'}], false)""", ),"opacity": 0.8,#                 "barBorderRadius": [20, 20, 0, 0],"shadowColor": 'rgb(0, 160, 221)',}}).extend_axis(  # 设置次坐标轴yaxis=opts.AxisOpts(name="",  # 次坐标轴名称type_="value",  # 次坐标手类型min_=-2 * line_max,  # 最小值max_=2 * line_max,  # 最大值is_show=False,  # 是否显示axisline_opts=opts.AxisLineOpts(is_show=False,  # y轴线不显示linestyle_opts=opts.LineStyleOpts(color='#2486b9')),  # 设置线颜色, 字体颜色也变axistick_opts=opts.AxisTickOpts(is_show=False),  # 刻度线不显示axislabel_opts=opts.LabelOpts(formatter="{value}"),  # 次坐标轴数据显示格式)).set_global_opts(title_opts=opts.TitleOpts(title=f"{cat[i]}电影票房 - top50",  # 标题title_textstyle_opts=opts.TextStyleOpts(font_size=20),  # 主标题字体大小subtitle="",  # 次坐标轴pos_left='center',pos_top='0.8%'),  # 标题位置legend_opts=opts.LegendOpts(is_show=True,pos_top=35,orient="horizontal",),  # 不显示图例tooltip_opts=opts.TooltipOpts(trigger="axis",axis_pointer_type="shadow"),  # 提示框xaxis_opts=opts.AxisOpts(name='',type_='category',axislabel_opts=opts.LabelOpts(rotate=360),),yaxis_opts=opts.AxisOpts(type_="value",  # y轴类型max_=bar_max,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)))line1 = (Line().add_xaxis(xaxis_data=data_cat[i]['电影'].tolist())  # x轴.add_yaxis(series_name="场均人次",  # 名称yaxis_index=1,  # 次坐标is_smooth=True,  # 线条样式  , 是否设置成圆滑曲线y_axis=data_cat[i]['场均人次'].tolist(),itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#2486b9'}, {offset: 1,color: '#FF00FF'}], false)""", ),"opacity": 0.7,"barBorderRadius": [45, 45, 45, 45],"shadowColor": 'rgb(0, 160, 221)',}},linestyle_opts={'normal': {'width': 3,'shadowColor': 'rgba(0, 0, 0, 0.5)','shadowBlur': 5,'shadowOffsetY': 10,'shadowOffsetX': 10,'curve': 0.5,'color': '#2486b9'}},label_opts=opts.LabelOpts(is_show=False),  # 显示数据标签).add_yaxis(series_name="平均票价",  # 名称yaxis_index=1,  # 次坐标is_smooth=True,  # 线条样式  , 是否设置成圆滑曲线y_axis=data_cat[i]['平均票价'].tolist(),itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: '#1a6840'}, {offset: 1,color: '#66c18c'}], false)""", ),"opacity": 0.7,"barBorderRadius": [45, 45, 45, 45],"shadowColor": 'rgb(0, 160, 221)',}},linestyle_opts={'normal': {'width': 3,'shadowColor': 'rgba(0, 0, 0, 0.5)','shadowBlur': 5,'shadowOffsetY': 10,'shadowOffsetX': 10,'curve': 0.5,'color': '#66c18c'}},label_opts=opts.LabelOpts(is_show=False),  # 显示数据标签))bar1.overlap(line1)  # 图表组合tab_rank.add(bar1, cat[i])
tab_rank.add(table, "点击预览")
tab_rank.render_notebook()

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

计算上榜电影标签汇总

tags_china = []
tag_china = data_china['作品类型'].tolist()
for t in tag_china:try:for i in t.split('/'):tags_china.append(i)except:continuetags_china_pair = []
for key, value in Counter(tags_china).items():tags_china_pair.append([key, value])print(tags_china_pair)
tags_foreign = []
tag_foreign = data_foreign['作品类型'].tolist()
for t in tag_foreign:try:for i in t.split('/'):tags_foreign.append(i)except:continuetags_foreign_pair = []
for key, value in Counter(tags_foreign).items():tags_foreign_pair.append([key, value])

国产-进口上榜 - TOP50 - 详情分布

pie = (Pie(init_opts=opts.InitOpts(width="1000px", height="900px", theme='light')).add('国产年份', [list(z) for z in zip(data_china_year.index.tolist(),data_china_year.values.tolist())],radius=['55', '100'],center=['33%', '30%']).add('进口', [list(z) for z in zip(data_foreigna_year.index.tolist(),data_foreigna_year.values.tolist())],radius=['55', '100'],center=['75%', '30%']).add('国产电影标签', tags_china_pair,radius=['55', '100'],center=['33%', '80%']).add('进口电影标签', tags_foreign_pair,radius=['55', '100'],center=['75%', '80%']).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}", font_size=14),tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} 
{b}: {c} ({d}%)"),itemstyle_opts={"normal": {'shadowBlur': 2,"borderColor": '#87CEFA',"borderWidth": 3,'shadowColor': '#87CEFA','opacity': 1}}).set_global_opts(legend_opts=opts.LegendOpts(is_show=False, pos_top='5%'),title_opts=[dict(text=f'国产-进口上榜 - TOP50 - 详情分布',left='center',top='1%',textStyle=dict(color='#000',fontSize=24)),dict(text=f'国产分布',left='28%',top='10%',textStyle=dict(color='#999999',fontSize=18)),dict(text=f'进口分布',left='70%',top='10%',textStyle=dict(color='#999999',fontSize=18)),dict(text=f'国产电影标签',left='28%',top='55%',textStyle=dict(color='#999999',fontSize=18)),dict(text=f'进口电影标签',left='70%',top='55%',textStyle=dict(color='#999999',fontSize=18)),],) ) pie.render_notebook()

在这里插入图片描述在这里插入图片描述
国产电影上映首周票房表现 -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万块银幕已经遍布中国的大城小镇,不断提升的观影环境,日益丰富的电影传播渠道和购票的便利性等,都是中国电影高质量发展的重要保障。“电影是综合性艺术,与国家的综合实力联系紧密。依托发达的经济、繁荣的文化、先进的科技,中国电影理应进入品质年代,我们有理由相信中国电影未来可期。”中国电影家协会副主席任仲伦说。​​​​

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...