利用Excel表格中数据生成地图类型可视化图形案例
某人工作不设限,创新不断,需求不断,我这个小小码农竟然还能帮上一丢丢小忙。
一、准备工作
提前安装好用于读取excel文件的扩展库xlrd和用于生成地图数据的echarts扩展库。安装方法是pip install 扩展库名。
二、读取excel数据
1.现有excel文件如下:
现需要在地图上显示这省份和其对应数据。利用Python实现如下书写代码:
import xlrd
data = xlrd.open_workbook('data.xlsx') #打开excel文件
table = data.sheet_by_name('Sheet1') #打开该文件中指定表格
province = table.col_values(0)[1:] #将第一列的值提取出来并转为列表
num = table.col_values(1)[1:] #将第二列数据提取出来并转为列表
三、创建地图并进行设置
创建地图
from pyecharts.charts import Map
chinaMap = Map()
设置地图相关参数
#给地图设置数据示例,数据来源,地图类型为china
chinaMap.add(
"人数",[list(z) for z in zip(province,num)],"china",
)
#设置地图的全局属性值
chinaMap.set_global_opts(
#标题内容 title="",标题距离左边距和右边距的距离pos_left,pos_top
title_opts = opts.TitleOpts(title = '分布数量',pos_left=50,pos_top=50),
#地图的左下方显示的地图数据分段及其颜色样例
visualmap_opts = opts.VisualMapOpts(max_ = 600,is_piecewise=True),
#设置右下角文字内容为具体数值、出现的位置和字体相关属性。
graphic_opts = opts.GraphicText(graphic_textstyle_opts = opts.GraphicTextStyleOpts(text =('\n').join(lit) ,pos_x=760,pos_y=320,font='normal 12px Microsoft YaHei'))
)
其中右下角文字内容列表为:
lit = []
for i in range(len(num)):
lit.append(str(province[i]) +":"+str(int(num[i])))
四、渲染保存为网页文件
chinaMap.render(path="中国地图.html")
这样便能把Excel文件中数据在地图上显示出来。运行效果如下图:
写在最后
这是一个运用echarts中map来实现数据图形化的一个典型的案例,它也是echarts将数据图表化的典型过程。最后,广大学习者还需要能读懂一些官方文档和网上技术文章,用python能做的事似乎是越来越丰富有趣了。
另附本文章所对应的echarts的官方文档链接地址为:https://pyecharts.org/#/zh-cn/intro.