基于python的抖音短视频数据分析与可视化

基于python的抖音短视频数据分析与可视化

一、前言

抖音是一个非常流行的短视频平台,每天都有大量的用户在抖音上分享和观看视频。为了更好地了解抖音用户的行为和兴趣,我们可以使用Python进行数据分析与可视化。

在本文中,我们将介绍如何使用Python进行抖音数据分析与可视化。首先,我们将使用Python获取抖音的数据,然后使用pandas和matplotlib等库对数据进行可视化。

1.数据获取
抖音的数据可以通过API接口获取。我们可以使用Python的requests库来发送HTTP请求,获取抖音的数据。

2..数据可视化
处理完数据后,我们可以使用matplotlib等库对数据进行可视化。例如,可以使用matplotlib绘制条形图、饼图、折线图等。

3.可视化结果分析
通过可视化结果,我们可以分析抖音用户的行为和兴趣。例如,可以分析用户关注的人的类型、观看的视频类型等。

二、数据获取

数据来自于第三方监测,一共是有5000+抖音大V的数据信息。

1be767158fb444b0800a451c7e91130e.png

主要包含博主们的昵称、性别、地点、类型、点赞数、粉丝数、视频数、评论数、分享数、关注数、毕业学校、认证、简介等信息。

其中粉丝最多的是人民日报,接近1.2亿。其次是央视新闻,也破亿了。

三、数据可视化

首先导入相关库,然后读取数据【如何导入 看最后】

from pyecharts.charts import Pie, Bar, TreeMap, Map, Geo
from wordcloud import WordCloud, ImageColorGenerator
from pyecharts import options as opts
import matplotlib.pyplot as plt
from PIL import Image
import pandas as pd
import numpy as np
import jieba

df = pd.read_csv('douyin.csv', header=0, encoding='utf-8-sig')
print(df)

1.性别分布情况

可视化代码如下:

def create_gender(df):
    df = df.copy()
    # 修改数值
    df.loc[df.gender == '0', 'gender'] = '未知'
    df.loc[df.gender == '1', 'gender'] = '男性'
    df.loc[df.gender == '2', 'gender'] = '女性'
    # 根据性别分组
    gender_message = df.groupby(['gender'])
    # 对分组后的结果进行计数
    gender_com = gender_message['gender'].agg(['count'])
    gender_com.reset_index(inplace=True)

    # 饼图数据
    attr = gender_com['gender']
    v1 = gender_com['count']

    # 初始化配置
    pie = Pie(init_opts=opts.InitOpts(width="800px", height="400px"))
    # 添加数据,设置半径
    pie.add("", [list(z) for z in zip(attr, v1)], radius=["40%", "75%"])
    # 设置全局配置项,标题、图例、工具箱(下载图片)
    pie.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V性别分布情况", pos_left="center", pos_top="top"),
                        legend_opts=opts.LegendOpts(orient="vertical", pos_left="left"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}))
    # 设置系列配置项,标签样式
    pie.set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter="{b}:{d}%"))
    pie.render("抖音大V性别分布情况.html")

6e693c8a95e94fa6bca2cf1fa24dfcb2.png

整体上看,男女比例差别不大,除去未知的数据,基本是1:1

2.点赞数 、点赞分布情况

可视化代码如下:

def create_likes(df):
    # 排序,降序
    df = df.sort_values('likes', ascending=False)
    # 获取TOP10的数据
    attr = df['name'][0:10]
    v1 = [float('%.1f' % (float(i) / 100000000)) for i in df['likes'][0:10]]

    # 初始化配置
    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    # x轴数据
    bar.add_xaxis(list(reversed(attr.tolist())))
    # y轴数据
    bar.add_yaxis("", list(reversed(v1)))
    # 设置全局配置项,标题、工具箱(下载图片)、y轴分割线
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V点赞数TOP10(亿)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    # 设置系列配置项,标签样式
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black"))
    bar.reversal_axis()
    bar.render("抖音大V点赞数TOP10(亿).html")

d6614d368d8d400ea5c4d5899f08e201.png

可视化代码如下:

def create_cut_likes(df):
    # 将数据分段
    Bins = [0, 1000000, 5000000, 10000000, 25000000, 50000000, 100000000, 5000000000]
    Labels = ['0-100', '100-500', '500-1000', '1000-2500', '2500-5000', '5000-10000', '10000以上']
    len_stage = pd.cut(df['likes'], bins=Bins, labels=Labels).value_counts().sort_index()
    # 获取数据
    attr = len_stage.index.tolist()
    v1 = len_stage.values.tolist()

    # 生成柱状图
    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(attr)
    bar.add_yaxis("", v1)
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V点赞数分布情况(万)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black"))
    bar.render("抖音大V点赞数分布情况(万).html")

56546e26a2ef45a9bccdc807185115db.png

3.  粉丝数、粉丝分布情况

可视化代码如下:

def create_fans(df):
    df = df.sort_values('fans', ascending=False)
    attr = df['name'][0:10]
    v1 = ['%.1f' % (float(i) / 10000) for i in df['fans'][0:10]]

    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(list(reversed(attr.tolist())))
    bar.add_yaxis("", list(reversed(v1)))
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V粉丝数TOP10(万)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black"))
    bar.reversal_axis()
    bar.render("抖音大V粉丝数TOP10(万).html")


create_fans(df)

10ab6a633f77463b98e2421c02e777dd.png「人民日报」和「央视新闻」粉丝都破亿了。

可视化代码如下:

def create_cut_fans(df):
    Bins = [0, 1500000, 2000000, 5000000, 10000000, 25000000, 200000000]
    Labels = ['0-150', '150-200', '200-500', '500-1000', '1000-2500', '5000以上']
    len_stage = pd.cut(df['fans'], bins=Bins, labels=Labels).value_counts().sort_index()

    attr = len_stage.index.tolist()
    v1 = len_stage.values.tolist()

    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(attr)
    bar.add_yaxis("", v1)
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V粉丝数分布情况(万)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black"))
    bar.render("抖音大V粉丝数分布情况(万).html")


create_cut_fans(df)

1eece215cc2842d89f267d38eceb3780.png

5000万以上56个,妥妥的大佬。200w~500w的人数最多,好多一时爆火的博主,一段时间后也基本不怎么涨粉了

4. 评论数

可视化代码如下:

def create_comments(df):
    df = df.sort_values('comments', ascending=False)
    attr = df['name'][0:10]
    v1 = ['%.1f' % (float(i) / 100000000) for i in df['comments'][0:10]]

    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(list(reversed(attr.tolist())))
    bar.add_yaxis("", list(reversed(v1)))
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V评论数TOP10(亿)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black"))
    bar.reversal_axis()
    bar.render("抖音大V评论数TOP10(亿).html")


create_comments(df)

c5468d237efe4336aebf6a47624b5311.png

抖音视频的评论区也是比较有意思的地方。比如刷剧催更的,「赶紧去更新,都过了十几分钟了,生产队的驴都不敢休息这么久」,总的来说,媒体类的视频评论较多。

5.分享数

可视化代码如下:

def create_shares(df):
    df = df.sort_values('shares', ascending=False)
    attr = df['name'][0:10]
    v1 = ['%.1f' % (float(i) / 100000000) for i in df['shares'][0:10]]

    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(list(reversed(attr.tolist())))
    bar.add_yaxis("", list(reversed(v1)))

    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V分享数TOP10(亿)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black"))
    bar.reversal_axis()
    bar.render("抖音大V分享数TOP10(亿).html")


create_shares(df)

94e893885a544d63bf4ebce0c9bc1fea.png

抖音的分享是视频对外传播的一个方法,可以让更多的人看到视频。从数据上看,大家还是比较喜欢分享新闻类以及美食类的视频。

6.各类型点赞数/粉丝数汇总分布图

可视化代码如下:

def create_type_likes(df):
    # 分组求和
    likes_type_message = df.groupby(['category'])
    likes_type_com = likes_type_message['likes'].agg(['sum'])
    likes_type_com.reset_index(inplace=True)
    # 处理数据
    dom = []
    for name, num in zip(likes_type_com['category'], likes_type_com['sum']):
        data = {}
        data['name'] = name
        data['value'] = num
        dom.append(data)
    print(dom)

    # 初始化配置
    treemap = TreeMap(init_opts=opts.InitOpts(width="800px", height="400px"))
    # 添加数据
    treemap.add('', dom)
    # 设置全局配置项,标题、工具箱(下载图片)
    treemap.set_global_opts(title_opts=opts.TitleOpts(title="各类型抖音大V点赞数汇总图", pos_left="center", pos_top="5"),
                            toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                            legend_opts=opts.LegendOpts(is_show=False))

    treemap.render("各类型抖音大V点赞数汇总图.html")


create_type_likes(df)


def create_type_fans(df):
    dom = []
    fans_type_message = df.groupby(['category'])
    fans_type_com = fans_type_message['fans'].agg(['sum'])
    fans_type_com.reset_index(inplace=True)
    for name, num in zip(fans_type_com['category'], fans_type_com['sum']):
        data = {}
        data['name'] = name
        data['value'] = num
        dom.append(data)
    print(dom)

    treemap = TreeMap(init_opts=opts.InitOpts(width="800px", height="400px"))
    treemap.add('', dom)
    treemap.set_global_opts(title_opts=opts.TitleOpts(title="各类型抖音大V粉丝数汇总图", pos_left="center", pos_top="5"),
                            toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                            legend_opts=opts.LegendOpts(is_show=False))
    treemap.set_series_opts(treemapbreadcrumb_opts=opts.TreeMapBreadcrumbOpts(is_show=False))
    treemap.render("各类型抖音大V粉丝数汇总图.html")


create_type_fans(df)

de949a71a4524e64b88d81a17f3fea2c.png

0b2d54ab74484e808dc36d6a14930bc7.png

抖音这个产品是消磨你时间的,而不是节约时间,技术稍微深一点的视频基本上生存不下去。由上面的矩形树图可以知道,大家都喜欢「美女」类型的视频,毕竟谁不喜欢漂亮妹子呢~

7.平均视频点赞数/粉丝数

可视化代码如下:

def create_avg_likes(df):
    # 筛选
    df = df[df['videos'] > 0]
    # 计算单个视频平均点赞数
    df.eval('result = likes/(videos*10000)', inplace=True)
    df['result'] = df['result'].round(decimals=1)
    df = df.sort_values('result', ascending=False)

    # 取TOP10
    attr = df['name'][0:10]
    v1 = ['%.1f' % (float(i)) for i in  df['result'][0:10]]

    # 初始化配置
    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    # 添加数据
    bar.add_xaxis(list(reversed(attr.tolist())))
    bar.add_yaxis("", list(reversed(v1)))
    # 设置全局配置项,标题、工具箱(下载图片)、y轴分割线
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V平均视频点赞数TOP10(万)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    # 设置系列配置项
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black"))
    # 翻转xy轴
    bar.reversal_axis()
    bar.render("抖音大V平均视频点赞数TOP10(万).html")


create_avg_likes(df)



def create_avg_fans(df):
    df = df[df['videos'] > 0]
    df.eval('result = fans/(videos*10000)', inplace=True)
    df['result'] = df['result'].round(decimals=1)
    df = df.sort_values('result', ascending=False)

    attr = df['name'][0:10]
    v1 = ['%.1f' % (float(i)) for i in df['result'][0:10]]

    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(list(reversed(attr.tolist())))
    bar.add_yaxis("", list(reversed(v1)))
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V平均视频粉丝数TOP10(万)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black"))
    bar.reversal_axis()
    bar.render("抖音大V平均视频粉丝数TOP10(万).html")


create_avg_fans(df)

1e52cb25e23441eda2e958708dfeece3.png

83baa10ed31545d7a38f9b04014cd3bf.png8. 抖音大V分布情况

可视化代码如下:

def create_province_map(df):
    # 筛选数据
    df = df[df["country"] == "中国"]
    df1 = df.copy()
    # 数据替换
    df1["province"] = df1["province"].str.replace("省", "").str.replace("壮族自治区", "").str.replace("维吾尔自治区", "").str.replace("自治区", "")
    # 分组计数
    df_num = df1.groupby("province")["province"].agg(count="count")
    df_province = df_num.index.values.tolist()
    df_count = df_num["count"].values.tolist()

    # 初始化配置
    map = Map(init_opts=opts.InitOpts(width="800px", height="400px"))
    # 中国地图
    map.add("", [list(z) for z in zip(df_province, df_count)], "china")
    # 设置全局配置项,标题、工具箱(下载图片)、颜色图例
    map.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V省份分布情况", pos_left="center", pos_top="0"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        # 设置数值范围0-600,is_piecewise标签值连续
                        visualmap_opts=opts.VisualMapOpts(max_=600, is_piecewise=False))
    map.render("抖音大V省份分布情况.html")


create_province_map(df)


def create_city_map(df):
    df1 = df[df["country"] == "中国"]
    df1 = df1.copy()
    df1["city"] = df1["city"].str.replace("市", "")

    df_num = df1.groupby("city")["city"].agg(count="count").reset_index().sort_values(by="count", ascending=False)
    df_city = df_num["city"].values.tolist()
    df_count = df_num["count"].values.tolist()

    # 初始化配置
    geo = Geo(init_opts=opts.InitOpts(width="800px", height="400px"))
    # 中国地图
    geo.add("", [list(z) for z in zip(df_city, df_count)], "china")
    # 设置全局配置项,标题、工具箱(下载图片)、颜色图例
    geo.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V城市分布情况", pos_left="center", pos_top="0"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        # 设置数值范围0-600,is_piecewise标签值连续
                        visualmap_opts=opts.VisualMapOpts(is_piecewise=True))
    geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    map.render("抖音大V城市分布情况.html")


# create_city_map(df)


def create_city(df):
    df1 = df[df["country"] == "中国"]
    df1 = df1.copy()
    df1["city"] = df1["city"].str.replace("市", "")

    df_num = df1.groupby("city")["city"].agg(count="count").reset_index().sort_values(by="count", ascending=False)
    df_city = df_num[:10]["city"].values.tolist()
    df_count = df_num[:10]["count"].values.tolist()

    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(df_city)
    bar.add_yaxis("", df_count)
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V城市分布TOP10", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black"))
    bar.render("抖音大V城市分布TOP10.html")


create_city(df)


def create_abroad(df):
    # 筛选数据
    df = df[(df["country"] != "中国") & (df["country"] != "") & (df["country"] != "暂不设置") & (df["country"] != "China")]
    df1 = df.copy()
    # 数据替换
    df1["country"] = df1["country"].str.replace("United States", "美国").replace("大韩民国", "韩国")
    # 分组计数
    df_num = df1.groupby("country")["country"].agg(count="count").reset_index().sort_values(by="count", ascending=False)
    df_country = df_num[:8]["country"].values.tolist()
    df_count = df_num[:8]["count"].values.tolist()

    # 初始化配置
    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(df_country)
    bar.add_yaxis("", df_count)
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V国外分布TOP10", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black"))
    bar.render("抖音大V国外分布TOP10.html")


# create_abroad(df)

d8b296e77eb64dbda8a52d4ed48876dd.png

北京遥遥领先,大V的聚集地。杭州盛产网红的城市,位列第二。 

afdac42468fc42bc9772d6a2a8da1749.png

 广东、浙江、四川位列前三。

7e49160fd16c4fe98486ec3fc3e68d0f.png

美国居第一,不少在美国的华人会分享他们在美国生活的一些事情。国内也有人感兴趣这方面的东西,看看国外的月亮究竟圆不圆。

9.抖音大V毕业学校


def create_school(df):
    df1 = df[(df["school"] != "") & (df["school"] != "已毕业") & (df["school"] != "未知")]
    df1 = df1.copy()
    df_num = df1.groupby("school")["school"].agg(count="count").reset_index().sort_values(by="count", ascending=False)
    df_school = df_num[:10]["school"].values.tolist()
    df_count = df_num[:10]["count"].values.tolist()

    # 初始化配置
    bar = Bar(init_opts=opts.InitOpts(width="1200px", height="400px"))
    bar.add_xaxis(df_school)
    bar.add_yaxis("", df_count)
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V毕业学校TOP10", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black"))
    bar.render("抖音大V毕业学校TOP10.html")


create_school(df)


9631fba3deab41d7950b15b67f9f28d5.png北影、中传、浙传、中戏、上戏、央美,妥妥的演艺圈大佬。

这里 通过代码查询一下大V们的认证情况:

df1 = df[(df["custom_verify"] != "") & (df["custom_verify"] != "未知")]
df1 = df1.copy()
df_num = df1.groupby("custom_verify")["custom_verify"].agg(count="count").reset_index().sort_values(by="count", ascending=False)
print(df_num[:20])

得到结果如下:

e77eb4ecac30417fb53c7a77e8817476.png

10. 抖音大V简介词云

可视化代码如下:

def create_wordcloud(df, picture):
    words = pd.read_csv('chineseStopWords.txt', encoding='gbk', sep='\t', names=['stopword'])
    # 分词
    text = ''
    df1 = df[df["signature"] != ""]
    df1 = df1.copy()
    for line in df1['signature']:
        text += ' '.join(jieba.cut(str(line).replace(" ", ""), cut_all=False))
    # 停用词
    stopwords = set('')
    stopwords.update(words['stopword'])
    backgroud_Image = plt.imread('douyin.png')
    # 使用抖音背景色
    alice_coloring = np.array(Image.open(r"douyin.png"))
    image_colors = ImageColorGenerator(alice_coloring)
    wc = WordCloud(
        background_color='white',
        mask=backgroud_Image,
        font_path='方正兰亭刊黑.TTF',
        max_words=2000,
        max_font_size=70,
        min_font_size=1,
        prefer_horizontal=1,
        color_func=image_colors,
        random_state=50,
        stopwords=stopwords,
        margin=5
    )
    wc.generate_from_text(text)
    # 看看词频高的有哪些
    process_word = WordCloud.process_text(wc, text)
    sort = sorted(process_word.items(), key=lambda e: e[1], reverse=True)
    print(sort[:50])
    plt.imshow(wc)
    plt.axis('off')
    wc.to_file(picture)
    print('生成词云成功!')

10f93c21a93040fd9832673ea91f1117.png

 四、注意事项

1.所有的代码放到同一个py文件中

2.在数据可视化过程中,难免会需要导入不同的库,这里建议使用WIN+R打开命令提示符,并使用国内镜像安装库(下载快),比如安装wordcloud库是,使用下列代码:

pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple/

这里用的是清华的镜像,其他镜像:

企业贡献:

(1).网易开源镜像站:http://mirrors.163.com/

(2).华为开源镜像站:https://mirrors.huaweicloud.com/

(3).阿里开源镜像站:https://developer.aliyun.com/mirror/

大学教学:

(1).清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/

(2).浙江大学开源镜像站:http://mirrors.zju.edu.cn/

(3).东北大学开源镜像站:http://mirror.neu.edu.cn/

安装库的时候,建议更新一下你的pip库,命令:

python -m pip install --upgrade pip

3.最后运行成功后会自动生成.html文件,如果你想要看到图,这时你就需要把.html文件拉到桌面上,用浏览器打开

0953a4451bd44ed4bf09e02b4b1ef20b.png

如果需要源码,可在评论区说。

  • 47
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 31
    评论
基于Python的汽车销售数据分析可视化,可以使用Python数据分析可视化库,如pandas、matplotlib和seaborn等。 首先,需要导入pandas库来读取和处理数据。可以将汽车销售数据存储在一个CSV文件中,然后使用pandas的read_csv函数读取数据。接着,可以使用pandas的各种功能对数据进行清洗、筛选和分析,如通过删除重复数据、处理缺失值和转换数据格式等。 在数据分析过程中,可以运用Python的各种数据处理函数和方法,如计算统计指标、排序、分组和聚合等。比如可以计算汽车销售数据中的平均销售量、最大销售量和最小销售量,并通过绘图展示销售量的分布和趋势。 接下来,可以使用matplotlib和seaborn等库来进行数据可视化。通过绘制柱状图、线图、散点图等,可以直观地展示汽车销售数据的特征和变化趋势。例如,可以绘制不同品牌汽车的销售量柱状图,或者通过折线图展示不同月份的销售趋势。此外,还可以使用seaborn库中的各种图表样式和配色方案,使得可视化效果更加美观和易于理解。 最后,可以将数据分析可视化的结果保存为图像或网页,以便于与他人分享和交流。对于较大的数据集,也可以使用Python的交互式可视化工具,如Jupyter Notebook,以便于更灵活地进行数据分析和展示。 综上所述,基于Python的汽车销售数据分析可视化可以基于pandas、matplotlib和seaborn等库进行。通过这些工具,可以对汽车销售数据进行处理、分析可视化,并获得有关销售量、品牌和趋势等方面的重要信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

噗-噗

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值