首页 > 其他分享 >Pyecharts制作动态GDP柱状图

Pyecharts制作动态GDP柱状图

时间:2024-04-18 17:46:47浏览次数:14  
标签:GDP Pyecharts 柱状图 dict year bar csv data

学习使用 pyecharts 制作动态柱状图
使用 csv 模块进行 csv 数据文件处理

import csv
from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType


def dealCSVFile():
    """
    读取处理 csv 数据文件
    :return: 字典对象
    """
    csv_data_dict = {}
    # 打开目标csv文件
    file = open(r"C:\Users\Admin\Desktop\API_NY.GDP.DEFL.KD.ZG.AD_DS2_zh_csv_v2_60257\source_data2.csv",
                mode="r", encoding="GB2312")
    # 返回的是一个读取器的对象
    content = csv.reader(file)
    # 读取第一行标题信息
    year = next(content)[1:]
    for con in content:
        country = con[0]
        for y in range(len(year)):
            GDP = con[1:][y]
            try:
                csv_data_dict[year[y]].append([country, GDP])
            except KeyError:
                csv_data_dict[year[y]] = []
                csv_data_dict[year[y]].append([country, GDP])

    return csv_data_dict


def makeCharts():
    dict_data = dealCSVFile()

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

    # 对字典中的年份 key 进行排序
    key_year = sorted(dict_data.keys())
    for year in key_year:
        # 对GDP值进行排序,默认False升序,这里用降序True
        dict_data[year].sort(key=lambda element: float(element[1]), reverse=True)
        # print(dict_data[year])
        # 取出GDP排名前8的国家
        gdp_country = dict_data[year][0:8]
        # x:country ; y:gdp
        x_data, y_data = [], []
        # 获取 x 轴和 y 轴的数据
        for gdp_data in gdp_country:
            x_data.append(gdp_data[0])
            y_data.append(gdp_data[1])
        # 构建图表对象
        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 的标题
        bar.set_global_opts(title_opts=TitleOpts(title=f"{year} 年的GDP增长率"))

        # add bar to timeline
        # str(year) 参数是时间线的标识
        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("GDP增长率.html")


if __name__ == '__main__':
    makeCharts()

image

标签:GDP,Pyecharts,柱状图,dict,year,bar,csv,data
From: https://www.cnblogs.com/JiurenShang/p/18144081

相关文章

  • 离线使用Pyecharts制作可视化图表——方法1:启动本地 js 服务
    在离线使用Pyechart进行可视化数据绘图的时候,会有生成的html网页打不开,或者是网页不出图像,是一个空白页面的问题出现,搜索发现其主要原因是:由于PyEcharts在升级到1.x版本后,将原来HTML网页中使用到的很多js文件换为了在线获取的方式,例如打开我本地生成的bar.html示例文件,就会发......
  • Python- pyecharts 制作示例可视化图表
    1、开发可视化图表使用的技术栈:Echarts框架的Python包——pyecharts2、官方网站:pyecharts-APythonEchartsPlottingLibrarybuiltwithlove.3、官方画廊:中文简介-Document(pyecharts.org)安装pyecharts包:pipinstallpyecharts一、构建各类图表所创建的对象......
  • pyecharts实现点击省跳转省地图
    诶呀我去太感谢了终于找到实现点击地图省份实现跳转了。参考:利用pyecharts实现中国省与市之间的跳转_pyecharts点击地图跳转-CSDN博客 需要注意的问题:1.如果想在全国地图显示数据,data数据中要用如:北京市、广东省、香港特别行政区、内蒙古自治区,这种带有后缀的。(可能有些不需......
  • Qt QCharts绘制柱状图,柱高和y轴数据刻度不匹配
    QCharts绘制柱状图,柱高和y轴数据刻度不匹配1//在项目pro文件中添加以下内容2QT+=charts34//在.h文件中添加以下内容,注意:需要将头文件及命名空间添加到ui命名空间之前,否则将提示错误5#include<QtCharts/QChartView>6#include<QtCharts/QBarSerie......
  • Origin2022中文版如何绘制反向双轴柱状图?
    柱形图是科研中经常用到的,今天给大家分享创建反向双轴柱状图,可直观的在同一图表中展示两组正负数据,且即使两组数值差异较大也可正常显示,比文字描述更清晰操作步骤:1、打开Origin2022软件,在Book1中输入如下示例数据 2、选中所有数据 3、点击菜单栏中【绘图】→【柱形图,饼......
  • 利用pyecharts实现地图下钻
    参考地址:利用pyecharts实现中国省与市之间的跳转_pyecharts点击地图跳转-CSDN博客代码:importcsvimportjionlpasjiofrompyechartsimportoptionsasoptsfrompyecharts.chartsimportMapfromcollectionsimportCounterimportrandomfrompyecharts.globalsimp......
  • 数据可视化高级技术Echarts(快速上手&柱状图&进阶操作)
    目录1.Echarts的配置 2.程序的编码3.柱状图的实现(入门实现)相关属性介绍(进阶):1.标记最大值/最小值2.标记平均值3.柱的宽度4.横向柱状图5.colorByseries系列(需要构造多组数据才能实现,下面有Sale和Sale1两组数据)data系列(同一组数据每个柱状图不同的显示)6.showBackgro......
  • GDPU 竞赛技能实践 天码行空6
    ......
  • LeetCode 84. 柱状图中最大的矩形
    解题思路单调栈经典题型,这道题我们需要找到heights[i]左边的最近的比heights[i]小的值,找到heights[i]右边的最近的比heights[i]小的值。所以我们想到了单调栈。相关代码classSolution{publicintlargestRectangleArea(int[]heights){intn=h......
  • 代码随想录算法训练营第六十天|84.柱状图中最大的矩形
    84.柱状图中最大的矩形刷题https://leetcode.cn/problems/largest-rectangle-in-histogram/description/文章讲解https://programmercarl.com/0084.%E6%9F%B1%E7%8A%B6%E5%9B%BE%E4%B8%AD%E6%9C%80%E5%A4%A7%E7%9A%84%E7%9F%A9%E5%BD%A2.html视频讲解https://www.bilibili.com......