目录
前言
本文将介绍如何使用 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 创建时间线柱状图的基本步骤如下:
- 初始化时间线对象:创建一个
Timeline
对象。 - 处理数据:对于每一年,找出人口排名前12的省市,并将这些数据存储在一个列表中。
- 创建柱状图:为每一年创建一个柱状图,并添加相应的数据。
- 设置全局选项:包括图表的标题等。
- 添加到时间线:将每个柱状图添加到时间线对象中。
- 渲染图表:将生成的时间线柱状图渲染为 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")
四、注意事项
- 路径问题:请确保文件路径正确无误。
- 编码问题:文件的编码应与代码中指定的编码一致。
- 数据格式:数据文件中的数据格式需要正确,否则可能会导致解析错误。
总结
通过以上步骤,您可以成功地生成一张展示 2014 年至 2022 年中国各省市人口排名前12的时间线柱状图,并将其保存为 HTML 文件以便查看。