基于pyecharts时间轴组件实现动态柱形图

目录

前言

1.数据预处理

        1.1数据准备和重复值统计

        1.2缺失值统计

 2.数据加工

3柱形图时间轴搭建

         3.1定义一个函数实现对应年份的柱形图

         3.2定义柱形图时间轴组件

 4.图形展示


前言

        pyecharts 是一个基于 Python 的数据可视化库,它是 echarts 的 Python 封装。echarts 是一个由百度开发的基于 JavaScript 的数据可视化库,它提供了丰富的图表类型和交互功能,可以帮助用户快速地创建交互式的数据可视化图表。

  同时pyecharts 提供了一系列的 Python 接口,可以方便地使用 echarts 的功能来创建各种类型的图表,包括折线图、柱状图、散点图、地图等。与其他 Python 数据可视化库相比,pyecharts 的优势在于它可以直接生成 JavaScript 代码,从而实现了与 echarts 的完全兼容。所有总的来说,pyecharts适合可视的初学者,虽然它在开视化大屏上的效果和功能远远比不上Echarts那么强大,但它的图形更加的简单,容易修改。同时在实现动态展示的功能上,更加的简单易上手!

下面我将利用pyecharts中的时间轴组件来实现动态柱形图

1.数据预处理

        1.1数据准备和重复值统计

           数据来源于IT桔子网站的千里马公司数据,使用八爪鱼工具爬取,总共930多条,基本数据信息如下:

           

            由于数据使用的是八爪鱼工具爬取,在八爪鱼保到本地之前就进行了去重处理,因此小编使用的数据不存在重复值,因此没有进行重复值删除。如果有需要可以使用下面的代码去重

data.drop_duplicates(subset=['列名1','列名2'],keep='first')

        1.2缺失值统计

使用以下代码查看缺失值情况。

可以看到,各个列的缺失值为0。

data.isnull().sum()

 2.数据加工

        这里我们需要得到2014年到2023年之间,各个领域的新上榜公司总数。因此,这里要对上榜时间进行加工,获取到年份

        为了得到柱形图能够接收的数据,我们还需要把DataFrame表格中的数据加工成序列,再把序列转换为python的列表list。 

        data是表格,query()函数实现更加我们的年份列查询对应年份的表格数据。

query()函数后面跟着["企业类型"]是因为我们只需要企业类型这个列,并且后面以它作为索引,统计出相同企业类型总数作为值。这里重点提醒,一定要确定它们两的关系,不然后面我们无法提取出数据。

values_counts()函数实现统计相同企业类型的数量。

sort_values()函数实现对序列进行排序。后面实现的柱形图需要进行排序。

data.query("年份=='2021'")["企业类型"].value_counts().sort_values()

3柱形图时间轴搭建

         3.1定义一个函数实现对应年份的柱形图

             直接上代码:

def sumRas(year):
    from pyecharts import options as opts
    from pyecharts.charts import Bar, Timeline
    from pyecharts.faker import Faker
    x1 = data.query(f"年份=='{year}'")["企业类型"].value_counts().sort_values()    # 加工出
    y2=x1.values.tolist()
    bar = (
        Bar()
        .add_xaxis(x1.index.tolist())
        .add_yaxis("不同企业类型新兴企业总数", y2, label_opts=opts.LabelOpts(position="right")    # 设置反转
        ,color='#00BFFF')
        .reversal_axis()
        .set_global_opts(
            title_opts=opts.TitleOpts("不同年份企业类型bra图 (时间: {} 年)".format(i))
        )
    )
    return bar

        代码中:x1.index.tolist()这里就是我们为什么要确定索引和值的对应列。提取出x1序列中的索引也就是企业类型作为x轴的数据。提取出x1序列中的值作为y轴的数据。同时tolist()函数实现序列转换为列表。不然可能数据不能成功展示。

        这里我分享用的柱形图源码:https://gallery.pyecharts.org/#/Timeline/timeline_bar

         3.2定义柱形图时间轴组件

             废话不多说直接上码

from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.options import LabelOpts
from pyecharts.globals import ThemeType
tl = Timeline({"theme": ThemeType.CHALK})    # 设置主题
# 设置自动播放
tl.add_schema(
    play_interval= 1500,    # 播放间隔设置为1.5秒
    is_timeline_show=True,  # 是否显示时间线
    is_auto_play=True,      # 是否自动播放
    is_loop_play=True,       # 是否循环播放
)
for i in range(2014, 2024): 
    b = sumRas(i)
    tl.add(b, "{}年".format(i))
tl.render_notebook()

tl = Timeline({"theme": ThemeType.CHALK})  这里定义一个时间轴组件

使用tl.add()把柱形图添加到时间轴组件里面。

因此我们需要使用一个for循环,循环调用我们上面调用的shumRas()函数,函数传入年份,返回我们需要的定义年份柱形图。

 4.图形展示

视频1

源码可自取

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

db_cy_2062

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

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

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

打赏作者

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

抵扣说明:

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

余额充值