iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现动态柱状图的绘制
  • 906
分享到

Python实现动态柱状图的绘制

Python绘制动态柱状图Python动态柱状图Python柱状图 2022-12-29 15:12:30 906人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一.基础柱状图二.基础时间线柱状图三.GDP动态柱状图绘制四.完整代码一.基础柱状图 如图 演示 from pyecharts.charts import Bar from p

一.基础柱状图

如图

演示

from pyecharts.charts import Bar
from pyecharts.options import *
#构建柱状图对象
bar=Bar()
#添加x轴对象
bar.add_xaxis(["中国","美国","日本"])
#添加y轴对象
bar.add_yaxis("GDP",[40,50,30])
#设置全局选项
bar.set_global_opts(
    title_opts=TitleOpts(title="GDP柱状图"),#加名称
    visualmap_opts=VisualMapOpts(#加范围显示
        is_show=True
    )
)
#绘图
bar.render("基础柱状图.html")

结果是

反转x轴,y轴,设置数值标签在右侧

#添加y轴对象
bar.add_yaxis("GDP",[40,50,30],label_opts=LabelOpts(position="right"))
#反转x轴y轴
bar.reversal_axis()

结果是

小结

  • 通过Bar()构建一个柱状图对象
  • 和折线图一样,通过add_xaxis()和add_yaxis()添加x和y轴数据
  • 通过柱状图对象的: reversal_axis(),反转x和y轴
  • 通过label_opts=LabelOpts(position="right")设置数值标签在右侧显示

二.基础时间线柱状图

演示

from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType
#构建柱状图对象
bar1=Bar()
#添加x轴对象
bar1.add_xaxis(["中国","美国","日本"])
#添加y轴对象
bar1.add_yaxis("GDP",[40,50,30],label_opts=LabelOpts(position="right"))
#反转x轴y轴
bar1.reversal_axis()
#设置全局选项
bar1.set_global_opts(
    title_opts=TitleOpts(title="GDP柱状图"),#加名称
    visualmap_opts=VisualMapOpts(#加范围显示
        is_show=True
    )
)
 
 
#构建柱状图对象
bar2=Bar()
#添加x轴对象
bar2.add_xaxis(["中国","美国","日本"])
#添加y轴对象
bar2.add_yaxis("GDP",[50,60,45],label_opts=LabelOpts(position="right"))
#反转x轴y轴
bar2.reversal_axis()
#设置全局选项
bar2.set_global_opts(
    title_opts=TitleOpts(title="GDP柱状图"),#加名称
    visualmap_opts=VisualMapOpts(#加范围显示
        is_show=True
    )
)
 
 
 
#构建柱状图对象
bar3=Bar()
#添加x轴对象
bar3.add_xaxis(["中国","美国","日本"])
#添加y轴对象
bar3.add_yaxis("GDP",[60,65,40],label_opts=LabelOpts(position="right"))
#反转x轴y轴
bar3.reversal_axis()
#设置全局选项
bar3.set_global_opts(
    title_opts=TitleOpts(title="GDP柱状图"),#加名称
    visualmap_opts=VisualMapOpts(#加范围显示
        is_show=True
    )
)
 
 
#构建时间线对象
timeline=Timeline({"theme":ThemeType.LIGHT})
#在时间线上添加柱状图对象
timeline.add(bar1,"点1")
timeline.add(bar2,"点2")
timeline.add(bar3,"点3")
 
 
#绘图是用时间线对象绘图,而不是用 bar了
timeline.render("基础时间线柱状图.html")

结果是

点击下面不同的点,就会显示出不同的柱状图

当然,这不是我们想要的最终结果,我们希望他可以制动播放并且一直循环下去

代码

#自动播放设置
timeline.add_schema(
    play_interval=1000,#这里是放下一张图的时间间隔,毫秒为单位
    is_timeline_show=True,#是否显示时间线
    is_auto_play=True,#是否自动播放
    is_loop_play=True#是否循环播放
)
 
#绘图是用时间线对象绘图,而不是用 bar了
timeline.render("基础时间线柱状图.html")

结果是

这样我们就可以控制上图中的“播放键”去控制是否自动循环播放

三.GDP动态柱状图绘制

1.了解列表的sort方法并配合lambda匿名函数完成列表排序

在前面我们学习过sorted函数,可以对数据容器进行排序

在后面的数据处理中,我们需要对列表进行排序,并指定排序规则,sorted函数就无法完成了。我们补充学习列表的sort方法。

使用方式:

列表.sort(key=选择排序依据的函数, reverse=TruelFalse)

  • 参数key,是要求传入一个函数,表示将列表的每一个元素都传入函数中,返回排序的依据
  • 参数reverse,是否反转排序结果,True表示降序,False表示升序

演示

my_list=[["a",12],["b",4],["c",45]]
def choose_sort_key(element):
    return element[1]
 
my_list.sort(key=choose_sort_key,reverse=True)
print(my_list)
 
my_list.sort(key=lambda element:element[1],reverse=False)
print(my_list)

结果是

上图中,第一种是基于带名函数,第二种是基于lambda函数

2.完成图表所需数据

#将数据转为字典存储,格式为:
#{ 年份:[[国家, gdp],[国家, gdp],...... ],年份:[[国家,gdp],[国家, gdp],.....], ...... },比如:
#{ 1960:[[美国, 123],[中国, 231],...... ],1961:[[美国,124],[中国, 234],.....], ...... }
#先定义一个字典
data_dict={}
for line in data_lines:
    year=int(line.split(",")[0])#年份
    country=line.split(",")[1]#省份
    GDP=float(line.split(",")[2])#因为美国的GDP是科学计数法,所以用float强制转回来
    #如何判断字典里面有没有制定的key呢?
    try:
        data_dict[year].append([country,GDP])
    except KeyError:
        data_dict[year]=[]
        data_dict[year].append([country,GDP])
 
print(data_dict)

结果是

上图就是1999年的数据

3.完成GDP动态图表绘制

from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
 
#读取文件
f=open("D:/1960-2019全球GDP数据.csv","r",encoding="ANSI")
data_lines=f.readlines()
#关闭文件
f.close()
#删除第一行数据
data_lines.pop(0)
 
#将数据转为字典存储,格式为:
#{ 年份:[[国家, gdp],[国家, gdp],...... ],年份:[[国家,gdp],[国家, gdp],.....], ...... },比如:
#{ 1960:[[美国, 123],[中国, 231],...... ],1961:[[美国,124],[中国, 234],.....], ...... }
#先定义一个字典
data_dict={}
for line in data_lines:
    year=int(line.split(",")[0])#年份
    country=line.split(",")[1]#省份
    GDP=float(line.split(",")[2])#因为美国的GDP是科学计数法,所以用float强制转回来
    #如何判断字典里面有没有制定的key呢?
    try:
        data_dict[year].append([country,GDP])
    except KeyError:
        data_dict[year]=[]
        data_dict[year].append([country,GDP])
 
#排序年份
sorted_year_list=sorted(data_dict.keys())
timeline = Timeline()#创建时间线对象
for year in sorted_year_list:
    data_dict[year].sort(key=lambda element:element[1],reverse=True)
    #取出本年份前八名的国家
    year_data=data_dict[year][:8]
    x_data=[]
    y_data=[]
    for country_gdp in year_data:
        x_data.append(country_gdp[0])#x轴添加国家
        y_data.append(country_gdp[1]/100000000)#y轴添加GDP数据,单位为亿元
 
    #构建柱状图
    bar=Bar()
    bar.add_xaxis(x_data)
    bar.add_yaxis("GDP亿元",y_data,label_opts=LabelOpts(position="right"))
    #反转x轴,y轴
    bar.reversal_axis()
 
    #创建时间线对象
 
    timeline.add(bar,str(year))
 
#设置时间为自动播放
timeline.add_schema(
    play_interval=1000,#时间间隔
    is_timeline_show=True,#是否显示时间
    is_loop_play=True,#是否循环
    is_auto_play=True#是否自动播放
)
#绘图
timeline.render("1960——2019全球GDP前八国家.html")

结果是

存在问题:我们希望第一行是GDP数量最多的,然后依次递减

解决方法很简单:把x轴和y轴上的数据都反转一下就可以了

    #构建柱状图
    bar=Bar()
    x_data.reverse()
    y_data.reverse()
    bar.add_xaxis(x_data)
    bar.add_yaxis("GDP亿元",y_data,label_opts=LabelOpts(position="right"))

结果是

这样就基本没问题了

我们还可以给他:

添加主题类型

from pyecharts.globals import ThemeType
 
timeline = Timeline({"theme":ThemeType.LIGHT})#创建时间线对象

结果是

设置动态标题

#反转x轴,y轴
    bar.reversal_axis()
    #设置每一年的图表标题
    bar.set_global_opts(
        title_opts=TitleOpts(title=f"{year}年全球GDP前八数据")
    )

结果是

四.完整代码

from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType
 
#读取文件
f=open("D:/1960-2019全球GDP数据.csv","r",encoding="ANSI")
data_lines=f.readlines()
#关闭文件
f.close()
#删除第一行数据
data_lines.pop(0)
 
#将数据转为字典存储,格式为:
#{ 年份:[[国家, gdp],[国家, gdp],...... ],年份:[[国家,gdp],[国家, gdp],.....], ...... },比如:
#{ 1960:[[美国, 123],[中国, 231],...... ],1961:[[美国,124],[中国, 234],.....], ...... }
#先定义一个字典
data_dict={}
for line in data_lines:
    year=int(line.split(",")[0])#年份
    country=line.split(",")[1]#省份
    GDP=float(line.split(",")[2])#因为美国的GDP是科学计数法,所以用float强制转回来
    #如何判断字典里面有没有制定的key呢?
    try:
        data_dict[year].append([country,GDP])
    except KeyError:
        data_dict[year]=[]
        data_dict[year].append([country,GDP])
 
#排序年份
sorted_year_list=sorted(data_dict.keys())
timeline = Timeline({"theme":ThemeType.LIGHT})#创建时间线对象
for year in sorted_year_list:
    data_dict[year].sort(key=lambda element:element[1],reverse=True)
    #取出本年份前八名的国家
    year_data=data_dict[year][:8]
    x_data=[]
    y_data=[]
    for country_gdp in year_data:
        x_data.append(country_gdp[0])#x轴添加国家
        y_data.append(country_gdp[1]/100000000)#y轴添加GDP数据,单位为亿元
 
    #构建柱状图
    bar=Bar()
    x_data.reverse()
    y_data.reverse()
    bar.add_xaxis(x_data)
    bar.add_yaxis("GDP亿元",y_data,label_opts=LabelOpts(position="right"))
    #反转x轴,y轴
    bar.reversal_axis()
    #设置每一年的图表标题
    bar.set_global_opts(
        title_opts=TitleOpts(title=f"{year}年全球GDP前八数据")
    )
    #创建时间线对象
 
    timeline.add(bar,str(year))
 
#设置时间为自动播放
timeline.add_schema(
    play_interval=1000,#时间间隔
    is_timeline_show=True,#是否显示时间
    is_loop_play=True,#是否循环
    is_auto_play=True#是否自动播放
)
#绘图
timeline.render("1960——2019全球GDP前八国家.html")

以上就是python实现动态柱状图的绘制的详细内容,更多关于Python动态柱状图的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python实现动态柱状图的绘制

本文链接: https://www.lsjlt.com/news/176225.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现动态柱状图的绘制
    目录一.基础柱状图二.基础时间线柱状图三.GDP动态柱状图绘制四.完整代码一.基础柱状图 如图 演示 from pyecharts.charts import Bar from p...
    99+
    2022-12-29
    Python绘制动态柱状图 Python动态柱状图 Python 柱状图
  • React+CSS 实现绘制竖状柱状图
    前言: 页面结构分为两个部分,柱状图 + 文字为一部分,标注为为一部分。 先来看柱状图 + 文字这一部分。 宽度定为 width: 55, height ...
    99+
    2024-04-02
  • PyQt5+QtChart实现柱状图的绘制
    目录柱状图分类实现代码效果图柱状图分类 QBarSeries:竖向柱状图 QPercentBarSeries:竖向百分比柱状图 QStackedBarSeries:竖向堆叠柱状图 Q...
    99+
    2022-12-15
    PyQt5 QtChart绘制柱状图 PyQt5 QtChart 柱状图 PyQt5 QtChart
  • python如何绘制柱状图
    1、插件安装 安装两种插件 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlibpip install -i https...
    99+
    2023-10-04
    matplotlib python
  • Python用 matplotlib 绘制柱状图
    目录1. 柱状图概述1.1什么是柱状图1.2柱状图使用场景1.3柱状图绘制步骤1.3案例展示 2. 柱状图属性2.1柱状体颜色填充2.2状描边设置2.3状体边框宽度2.4刻度标签3....
    99+
    2024-04-02
  • python绘制柱状图的方法
    本文实例为大家分享了python绘制柱状图的具体代码,供大家参考,具体内容如下 绘制数据系列的柱状图 import numpy as np import matplotlib.pyp...
    99+
    2024-04-02
  • Python绘制柱状图堆叠图
    本文详细介绍如何使用 Matplotlib 绘制柱状堆叠图 文章目录 一、引入库二、数据准备三、绘制基本柱状堆叠图1.绘制基本图形2.设置柱子宽度、添加刻度标签和旋转角度 四、完整代码五...
    99+
    2023-09-13
    python matplotlib 开发语言
  • Pythonpyecharts绘制柱状图
    目录一、pyecharts绘制柱状图语法简介 二、绘制普通柱状图 三、绘制堆叠柱状图 四、绘制横向柱状图 五、pyecharts柱状图datazoom案例六、对应pyecharts柱...
    99+
    2024-04-02
  • Matplotlib绘制柱状图
    利用matplotlib绘制柱状图 柱状图是一种用矩形柱来表示数据分类的图表,柱状图可以垂直绘制,也可以水平绘制,它的高度与其所表示的数值成正比关系。柱状图显示了不同类别之间的比较关系,图表的水平轴 X 指定被比较的类别,垂直轴 Y 则表...
    99+
    2023-10-24
    matplotlib python 开发语言 Powered by 金山文档
  • Python绘制多因子柱状图的实现示例
    目录背景介绍软件介绍绘图教程最后背景介绍 R和Python作为两个开源、且容易上手的数据分析和绘图工具,在科研中应用的比较广泛。 在接下来的日子,我们围绕Python进行绘图和数据分...
    99+
    2024-04-02
  • React+CSS实现绘制横向柱状图
    前言: 页面一共分为两个结构 文字 + 渐变柱形图为一个部分,下面的标注为一个结构。 我们先看文字 + 渐变柱形图部分。 总体使用 flex 布局,左边文字部分占总体的 50%,右...
    99+
    2024-04-02
  • Python怎么绘制Matplotlib柱状图
    这篇文章主要讲解了“Python怎么绘制Matplotlib柱状图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么绘制Matplotlib柱状图”吧!前言:柱状图是一种使用矩形...
    99+
    2023-06-30
  • 利用Matlab实现阴影柱状图的绘制
    目录示例图使用教程1.基本使用2.添加图例3.阴影格式4.特殊结构5.额外修饰工具函数完整代码封面图绘制代码阴影柱状图绘制的代码MATHWORKS上也有,不过是生成图片后,识别图像上...
    99+
    2024-04-02
  • python绘制分组对比柱状图
    本文实例为大家分享了python绘制分组对比柱状图的具体代码,供大家参考,具体内容如下 首先放效果图:   # -*- coding: utf-8 -*- import ...
    99+
    2024-04-02
  • 使用Echart实现绘制立体的柱状图
    效果图: 实现代码: var xData3 = ["6", "7", "8", "9","10","11"]; var data3 = [1209, 1715, 2408,...
    99+
    2024-04-02
  • Python中pyecharts如何绘制柱状图
    这篇文章主要介绍Python中pyecharts如何绘制柱状图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、pyecharts绘制柱状图语法简介柱状/条形图,通过柱形的高度/条形的宽度来表现数据的大小。Bar.a...
    99+
    2023-06-22
  • .net+FusionChart实现动态显示的柱状图和饼状图
    html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or...
    99+
    2024-04-02
  • Python数据分析Matplotlib 柱状图绘制
    前言: 柱状图是一种使用矩形柱来表示数据分布的图表,可以横向排列,也可以纵向排列,它的高度或长度和他们所代表的值成正比关系。 Matplotlib 提供了bar()方法绘制柱状图, ...
    99+
    2024-04-02
  • vue echarts实现柱状图动态展示
    本文实例为大家分享了vue echarts实现柱状图动态展示的具体代码,供大家参考,具体内容如下 轮播图形式展现 <template> <div clas...
    99+
    2024-04-02
  • Python绘制单数据系列柱状图、多数据系列柱状图、堆积柱状图、百分比堆积柱状图
    1.单数据系列柱状图: 运行结果:  具体代码: #引入工具包import matplotlib.pyplot as pltimport numpy as np#设置中文字体,如果不需要中文,则可不写该语句plt.rcParams["fo...
    99+
    2023-09-26
    python matplotlib 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作