作业
在中国地图上展示每个省的高考人数或大学数量。
过程
我一个超级菜鸟,试了好几次。
一开始不知道怎么读取csv文件,不知道直接“import csv”好,还是用pandas好。
文件读取又出了问题。pandas不能直接读取中文路径的文件。
DataFrame不会读取特定的列或行。
试图直接显示字符串,但是去官方网站才知道不支持字符串,于是只好去掉数据中的“万”字。
最后发现总数总是所有数据的和,一点才知道可以选择图例的……
from pyecharts import options as opts
from pyecharts.charts import Map
import pandas
f = open('D:/test/可视化/基于地图的图表源码与数据包/dataset.csv', 'rb') # pandas读取中文路径之必需
dataframe = pandas.read_csv(filepath_or_buffer=f, header=None, sep=',') # 以,为间隔,读取文件为DataFrame类型
class Data1:
provinces = dataframe.loc[2:32, 0] # 取出省/市的一列
dl2016 = dataframe.loc[2:32, 1].str.replace("万", "") # 取出“2016年”的列,因为不支持字符串,所以去掉“万”字
class Data2:
provinces = dataframe.loc[2:32, 0]
dl2017 = dataframe.loc[2:32, 2].str.replace("万", "")
class Data3:
provinces = dataframe.loc[2:32, 0]
dl2198 = dataframe.loc[2:32, 3]
class Data4:
provinces = dataframe.loc[2:32, 0]
dlgoba = dataframe.loc[2:32, 4]
def pu() -> Map:
c = (
Map()
.add("各省2016年高考人数(万人)", [list(x) for x in zip(Data1.provinces, Data1.dl2016)], "china")
.add("各省2017年高考人数(万人)", [list(y) for y in zip(Data2.provinces, Data2.dl2017)], "china")
.add("各省211和985大学数(所)", [list(z) for z in zip(Data3.provinces, Data3.dl2198)], "china")
.add("各省公办大学数(所)", [list(w) for w in zip(Data4.provinces, Data4.dlgoba)], "china")
.set_global_opts(title_opts=opts.TitleOpts(title="Map1-基本示例"),
visualmap_opts=opts.VisualMapOpts(min_=0,max_=100))
)
return c
pu().render("各省大学及高考人数.html")
结果