Python数据可视化简例之使CSV文件转变为动态柱状图

一、逗号分隔值文件

         逗号分隔值(有时也叫字符分隔值,因为有时候分隔字符不是逗号)文件也称为CSV文件(文件名后缀为.csv)。这种文件格式主要用于储存表格数据,采用纯文本方式,由多条记录组成,每条记录由字段构成,而字段之间的分割依靠逗号或其他分隔符(比如制表符)完成。CSV文件常用于电子表格数据的储存和交换,容易在不同程序和系统之间共享数据。

二、库和模块

       pyecharts是python中的一个用于生成数据可视化图表的库。pyecharts.charts是pyecharts库中的模块,包含了多种不同类型的图表,如折线图、柱状图等。Bar、Timelines表示我们需要导入的柱状图和时间线。pyecharts.options也是python中pyecharts的模块,它包含了众多用于定制图表组件以及样式的配置项。这些配置项允许开发者对图表的各个方面进行精细化的设置,如标题、图例。*表示这个模块里的所有配置项都被导入了,但我们不一定全部用到。

三、开发思路

       1、导入我们开发过程中所需模块里的图表和配置项

       2、open读取文件,和.txt文件不同的是这里编码方式为GB2312

       3、数据处理,将处理好的数据读取到字典

       4、创建时间线,线上的每一点都代表当年全球前八位国家的GDP数据。

       5、对年份进行排序,

       6、构建柱状图

       7、设置自动播放

       8、绘图

四、代码展示

from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
#读取文件里的数据
f = open("D:/1960-2019全球GDP数据.csv","r",encoding="GB2312")
data_lines = f.readlines()
f.close()
#删除掉第一条数据
data_lines.pop(0)
#将数据转为字典形式储存
#先定义一个字典对象
data_dic={}
#用for循环读取到字典里面
for line in data_lines:
    year=int(line.split(",")[0])
    country=line.split(",")[1]
    gdp=float(line.split(",")[2])
    #判断字典里是否有指定的key
    try:
        data_dic[year].append([country,gdp])
    except KeyError:
        data_dic[year]=[]
        data_dic[year].append([country,gdp])
#创建时间线对象
timeline = Timeline()
#对年份进行排序
sorted_year_list = sorted(data_dic.keys())
for year in sorted_year_list:
    data_dic[year].sort(key=lambda element:element[1],reverse=True)   #使用匿名函数对每一年中的第2个元素(即年份)进行排序
    year_data = data_dic[year][0: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()                               #翻转x轴
    y_data.reverse()                               #翻转y轴
    bar.add_xaxis(x_data)                          #x轴添加数据
    bar.add_yaxis("GDP(亿)",y_data,label_opts=LabelOpts(position="right"))  #y轴添加数据
    bar.reversal_axis()                                                        #调换x轴和y轴
    bar.set_global_opts(title_opts=TitleOpts(title=f"{year}全球GDP前八名国家"))     #添加标题
    timeline.add(bar,str(year))             #将每一年的bar添加到时间线对象中
#设置自动播放
timeline.add_schema(
    play_interval=1000,             #时间间隔设为1000毫秒
    is_timeline_show=True,          #时间线是否展示
    is_auto_play=True,              #是否自动播放
    is_loop_play=True              #是否循环
    )
#绘图
timeline.render("GDP动态图.html")

五、效果展示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值