【42 Pandas+Pyecharts | 某瓣电影Top250数据分析可视化】

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

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,点击【跳转到网站】。

本期利用 python 分析一下「某瓣电影Top250数据」 ,看看各年份上映电影数量、各电影类型占比,各地区上映电影数量,电影评分分布,电影时长区间,电影导演、主演分布情况 等等,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

涉及到的库:

  • Pandas — 数据处理
  • Pyecharts — 数据可视化

🏳️‍🌈 1. 导入模块

import pandas as pd
from pyecharts.charts import Bar
from pyecharts.charts import Scatter
from pyecharts.charts import Pie
from pyecharts.charts import Funnel
from pyecharts.charts import WordCloud
from pyecharts.charts import Line
from pyecharts.charts import Liquid
from pyecharts.charts import Grid
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')

🏳️‍🌈 2. Pandas数据处理

2.1 读取数据

df_movies = pd.read_excel("./TOP250.xlsx")

在这里插入图片描述

2.2 查看数据信息

df_movies.info()

在这里插入图片描述

2.3 查看数据描述信息

df_movies.describe()

在这里插入图片描述

  • 评分最高9.7,最低8.4,时长最长237分钟,最短45分钟

2.4 将中国地区语言修改为中文

df_movies.loc[df_movies["国家/地区"] == "中国", "语言"] = '中文'

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

3.1 各年份上映电影数量

def get_bar1():
    bar = (
        Bar()
            .add_xaxis(x_data)
            .add_yaxis('', y_data)
            .set_global_opts(
                title_opts=opts.TitleOpts(
                    title='1-各年份上映电影数量',
                    subtitle='-- 制图@公众号:Python当打之年 --',
                    pos_top='2%',
                    pos_left="center",
                    title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)
                ),
                visualmap_opts=opts.VisualMapOpts(
                    is_show=False,
                    range_color=range_color
                ),
                legend_opts=opts.LegendOpts(is_show=False),
                yaxis_opts=opts.AxisOpts(
                    splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(type_='dashed'))
                )
            )
    )
    return bar

在这里插入图片描述

  • 2010年上榜电影14部最多,其次是2004年、1994年的13部,以及2013年的12部。

3.2 电影榜单TOP10

def get_funnel():
    funnel = (
        Funnel()
            .add("", [list(z) for z in zip(x_data, y_data)])
            .set_series_opts(label_opts=opts.LabelOpts(position="inside", formatter='{b} {c}'))
            .set_global_opts(
                title_opts=opts.TitleOpts(
                    title='2-电影榜单TOP10',
                    subtitle='-- 制图@公众号:Python当打之年 --',
                    pos_top='2%',
                    pos_left="center",
                    title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)
                ),
                legend_opts=opts.LegendOpts(is_show=False),
                visualmap_opts=opts.VisualMapOpts(
                    is_show=False,
                    range_color=range_color
                )
            )
    )
    return funnel

在这里插入图片描述

3.3 电影评价人数前二十

def get_map(x_data, y_data)
    map0 = (
        Map(
            init_opts=opts.InitOpts(width='1000px', height='600px')
        )
        .add("",
             [list(z) for z in zip(x_data, y_data)],
             maptype="china",
            )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='3-各省星巴克门店数量分布',
                pos_top='2%',
                pos_left="center",
                title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=True,
                pos_top='70%',
                pos_left='20%',
                range_color=range_color
            )
        )
    )
    return map0

在这里插入图片描述

3.4 各地区上映电影数量

def get_funnel():
    line = (
        Line()
        .add_xaxis(x_data)
        .add_yaxis('地区上映数量', y_data)
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='4-各地区上映电影数量',
                subtitle='-- 制图@公众号:Python当打之年 --',
                pos_top='2%',
                pos_left="center",
                title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                range_color=range_color,
            )
        )
    )
    return line

在这里插入图片描述

  • 从上榜电影地区分布上看,美国以144部排名第一,其次是中国的44部和日本的33部排名第二、三位。

3.5 各电影类型占比

在这里插入图片描述

  • 从上榜电影类型分布上看,剧情类电影占比最高(26.8%),其次是爱情类(8.36%),喜剧类(7.49%),冒险类(7.2%)

3.6 电影评分分布

在这里插入图片描述

3.7 电影时长区间

def get_pie():
    pie = (
        Pie()
            .add("",
                 [list(z) for z in zip(x_data, y_data)],
                 radius=["30%", "70%"],
                 label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)")
             )
            .set_global_opts(
                title_opts=opts.TitleOpts(
                    title='7-电影时长区间',
                    subtitle='-- 制图@公众号:Python当打之年 --',
                    pos_top='2%',
                    pos_left="center",
                    title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)
                ),
                legend_opts=opts.LegendOpts(is_show=False),
                visualmap_opts=opts.VisualMapOpts(
                    is_show=False,
                    range_color=range_color,
                ),
            )
    )
    return pie

在这里插入图片描述

  • 43.2%的电影在90-120分钟这个时间段内,即一个半小时至两个小时。
  • 150分分钟以上的电影有37部,占比14.8%。

3.8 中文-英语电影数量占比

在这里插入图片描述

  • 中文语种电影44部,占比17.6%,英语语种电影144部,占比57.6%。

3.9 电影片名词云

def get_wordcloud():
    wordcloud = (
        WordCloud()
            .add("",words,word_size_range=[10, 50])
            .set_global_opts(
                title_opts=opts.TitleOpts(
                    title='9-电影主演词云',
                    subtitle='-- 制图@公众号:Python当打之年 --',
                    pos_top='2%',
                    pos_left="center",
                    title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)
                )
        )
    )
    return wordcloud

在这里插入图片描述

3.10 电影主演词云

在这里插入图片描述

🏳️‍🌈 4. 可视化项目源码+数据

点击跳转:【全部可视化项目源码+数据】


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

好的,我可以为您提供一些关于使用pyecharts进行豆电影数据可视化的指导。 首先,您需要获取豆电影的数据。可以使用爬虫或者直接下载已有的数据集。接着,您需要安装pyecharts库。 以下是一些常见的pyecharts图表类型以及如何使用它们: 1. 柱状图(Bar):用于比较不同类别的数据大小。例如,您可以使用该图表显示每个电影类型的平均评分。 ```python from pyecharts.charts import Bar bar = Bar() bar.add_xaxis(['剧情', '爱情', '动作', '科幻', '悬疑']) bar.add_yaxis('豆电影平均评分', [7.8, 7.5, 7.2, 7.0, 6.8]) bar.render('豆电影类型平均评分.html') ``` 2. 折线图(Line):用于显示数据随时间的变化趋势。例如,您可以使用该图表显示每年电影数量的变化。 ```python from pyecharts.charts import Line line = Line() line.add_xaxis(['2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019']) line.add_yaxis('电影数量', [128, 143, 158, 176, 191, 211, 225, 244, 253, 262]) line.render('豆电影年度数量.html') ``` 3. 饼图(Pie):用于显示数据的占比情况。例如,您可以使用该图表显示各个国家电影数量的占比。 ```python from pyecharts.charts import Pie pie = Pie() pie.add('', [('中国', 817), ('美国', 523), ('日本', 318), ('韩国', 126), ('其他', 216)]) pie.set_global_opts(title_opts=opts.TitleOpts(title="豆电影各国电影数量占比")) pie.render('豆电影各国电影数量占比.html') ``` 以上是一些常见的pyecharts图表类型的使用示例。您可以根据需要进行调整和修改,以满足您的需求。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python当打之年

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值