使用Pyecharts绘制中国各省市人口排名前12的时间线柱状图

目录

前言

一、准备工作

二、读取数据与数据处理

1.读取数据

2.数据处理

三、创建时间线柱状图

四、注意事项

总结



前言

本文将介绍如何使用 Python 的 Pyecharts 库来绘制 2014 年至 2022 年中国各省市人口排名前12的时间线柱状图。我们将从一个包含各省市人口数据的 CSV 文件开始,并使用这些数据来生成可视化图表。

一、准备工作

确保您已经安装了 pyecharts 这个 Python 库。如果没有安装,可以通过 pip 安装:

pip install pyecharts

二、读取数据与数据处理

1.读取数据

我们将从一个 CSV 文件中读取数据。假设文件名为 分省年度数据(1).csv,并且文件路径为 "C:\\Users\\Dell\\Downloads\\分省年度数据(1).csv"。需要注意的是,CSV 文件的编码为 GBK。

2.数据处理

首先,我们需要打开文件并读取每一行的内容。由于前几行可能包含标题或非数据信息,我们将其忽略。

接下来,我们将每行数据分割成省份名称和各年份的人口数量,并将这些信息按照年份组织成字典,其中键是年份,值是一个列表,列表中的每个元素都是一个包含省份名称和人口数量的元组。

三、创建时间线柱状图

使用 Pyecharts 创建时间线柱状图的基本步骤如下:

  1. 初始化时间线对象:创建一个 Timeline 对象。
  2. 处理数据:对于每一年,找出人口排名前12的省市,并将这些数据存储在一个列表中。
  3. 创建柱状图:为每一年创建一个柱状图,并添加相应的数据。
  4. 设置全局选项:包括图表的标题等。
  5. 添加到时间线:将每个柱状图添加到时间线对象中。
  6. 渲染图表:将生成的时间线柱状图渲染为 HTML 文件

完整代码

# -*- coding: utf-8 -*-
from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline

# 读取 CSV 文件
with open("C:\\Users\\Dell\\Downloads\\分省年度数据(1).csv", "r", encoding='gbk') as f:
    data_lines = f.readlines()

# 忽略前几行
for _ in range(3):
    data_lines.pop(0)

# 忽略最后两行
for _ in range(2):
    data_lines.pop(-1)

# 获取年份
years = data_lines.pop(0).replace("\n", "").split(",")
years.pop(0)

# 数据字典
data_dict = {}

# 处理数据
for data_line in data_lines:
    data_line_list = data_line.replace("\n", "").split(",")
    index = 0
    for year in years:
        index += 1
        try:
            data_dict[year].append([data_line_list[0], float(data_line_list[index])])
        except KeyError:
            data_dict[year] = []
            data_dict[year].append([data_line_list[0], float(data_line_list[index])])

# 创建时间线
timeline = Timeline()

# 反转年份列表
years.reverse()

# 为每一年创建柱状图
for year in years:
    data_dict[year].sort(key=lambda ele: ele[1], reverse=True)
    rank_12_city_data = data_dict[year][0:12]
    x_data = [city[0] for city in rank_12_city_data]
    y_data = [city[1] for city in rank_12_city_data]

    bar = Bar()
    bar.add_xaxis(x_data)
    bar.add_yaxis("人口(万)", y_data)
    bar.reversal_axis()
    bar.set_global_opts(title_opts=opts.TitleOpts(title=f"{year}年中国省市人口排名前12的情况"))

    timeline.add(bar, str(year))

# 渲染 HTML 文件
timeline.render("2014-2022年中国省市人口排名前12的情况.html")

四、注意事项

  1. 路径问题:请确保文件路径正确无误。
  2. 编码问题:文件的编码应与代码中指定的编码一致。
  3. 数据格式:数据文件中的数据格式需要正确,否则可能会导致解析错误。

总结

通过以上步骤,您可以成功地生成一张展示 2014 年至 2022 年中国各省市人口排名前12的时间线柱状图,并将其保存为 HTML 文件以便查看。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值