1、环境

代码运行环境:python3.7

相关的库:pyecharts 1.7.1

代码编辑器:visual studio code

2、目的

通过使用pyecharts库,来绘制全国各省985高校的数量分布图,用这个来练习pyecharts库绘制地图。

3、相关说明

(1)pyecharts库简介

官方文档:https://pyecharts.org/#/zh-cn/intro

图库样本:http://gallery.pyecharts.org/#/README

官方的简介如下:Echarts是一个由百度开源的数据可视化,能够进行良好的交互性,精巧的图表设计,得到了众多开发者的认可。而Python是一门富有表达力的语言,很适合用于数据处理。分析遇上数据可视化时,pyecharts诞生了。

使用pyecharts库来生成地图特别方便,而且官方提供了图库样本,对开发人员来说省事了不少,我也是今天才初次接触到这个库,这篇博客也是简单的记录一下自己的学习过程。

(2)使用visual studio code动态预览html文件

参考链接:https://jingyan.baidu.com/album/0aa22375ef8162c8cc0d64a8.html?picindex=3

由于使用pyecharts库输出的是一个html文件,我又不想每次都去点击输出的html文件再运行,很麻烦。于是在网上找了一下如何在vs code中运行html文件。

我执行python,更新html后,绘制的图就会更新,用来调试还是很方便的。效果图如下:

4、代码及其说明

(1)官方给的参考代码

链接:http://gallery.pyecharts.org/#/Map/map_visualmap_piecewise

 1 from pyecharts import options as opts
2 from pyecharts.charts import Map
3 from pyecharts.faker import Faker
4
5 c = (
6 Map()
7 .add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
8 .set_global_opts(
9 title_opts=opts.TitleOpts(title="Map-VisualMap(分段型)"),
10 visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),
11 )
12 .render("map_visualmap_piecewise.html")
13 )

这种写作风格的代码我之前没怎么接触过(可能是由于我接触的代码太少了,囧),看了好一会儿才明白它的意思。

它的含义其实就是实例化了一个类对象,并使用了类的add、set_global_opts和render方法,上面的代码等价与如下的代码:

1 m = Map()
2 m.add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
3 m.set_global_opts(
4 title_opts=opts.TitleOpts(title="Map-VisualMap(分段型)"),
5 visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),
6 )
7 m.render("map_visualmap_piecewise.html")

果然我还是习惯下面这种代码风格。

(2)各省份985高校分布图

直接放代码了:

 1 # encoding: utf-8
2
3 from pyecharts.charts import Map
4 from pyecharts import options as opts
5 from college import school_list_of_985
6
7
8 # 获取高校数据
9 def get_data():
10 provinces = []
11 school_nums = []
12 for province in school_list_of_985:
13 provinces.append(province)
14 school_nums.append(len(school_list_of_985[province]))
15 return [provinces, school_nums]
16
17
18 # 绘制地图
19 def draw_a_map(data):
20 provinces = data[0]
21 school_nums = data[1]
22 mm = Map()
23 mm.add('学校数量', [[provinces[i], school_nums[i]] for i in range(len(provinces))], "china")
24 mm.set_global_opts(
25 title_opts=opts.TitleOpts(title="全国985高校分布图"),
26 visualmap_opts=opts.VisualMapOpts(max_=8, is_piecewise=True, split_number=4),
27 )
28 mm.render("map_visualmap_piecewise.html")
29
30
31 if __name__ == '__main__':
32
33 data = data = get_data()
34
35 if len(data[0]) == len(data[1]):
36 draw_a_map(data)

这里主要调用了Map类的两个方法,

一个是add方法,官方说明为:https://pyecharts.org/#/zh-cn/geography_charts?id=map%ef%bc%9a%e5%9c%b0%e5%9b%be

一个是set_global_opts方法,没找到官方说明,不过它的参数也不多,直接看源码也能大概猜个一二。

上面的college是我自定义的一个py文件,里面放的是一个字典school_list_of_985,我也把它放出来吧。

 1 # {province: school}
2 school_list_of_985 = {
3 "北京": ['北京大学', '清华大学', '中国人民大学', '北京理工大学', '北京航空航天大学', '北京师范大学', '中央民族大学', '中国农业大学'],
4 '陕西': ['西安交通大学', '西北农林科技大学', '西北工业大学'],
5 '湖南': ['湖南大学', '中南大学', '国防科技大学'],
6 '上海': ['同济大学', '复旦大学', '上海交通大学', '华东师范大学'],
7 '四川': ['四川大学', '电子科技大学'],
8 '湖北': ['武汉大学', '华中科技大学'],
9 '江苏': ['南京大学', '东南大学'],
10 '天津': ['天津大学', '南开大学'],
11 '辽宁': ['东北大学', '大连理工大学'],
12 '山东': ['山东大学', '中国海洋大学'],
13 '广东': ['中山大学', '华南理工大学'],
14 '福建': ['厦门大学'],
15 '浙江': ['浙江大学'],
16 '安徽': ['中国科学技术大学'],
17 '重庆': ['重庆大学'],
18 '黑龙江': ['哈尔滨工业大学'],
19 '吉林': ['吉林大学'],
20 '甘肃': ['兰州大学']
21 }

5、效果图

执行的结果如下:

至此,这篇博客也就写在这里了,当然pyecharts库还有很多其它的图表,我暂时没使用,就不说明它了。使用现成的API进行开发,其实是很快速简单的一件事,往API中填数据就可以了。

如果文中有什么错误的地方,还望网友指出来。

python-使用pyecharts绘制各省份985学校数量图的更多相关文章

  1. Python 竟能绘制如此酷炫的三维图

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  2. Python pyecharts绘制柱状图

    本文摘抄至https://05x-docs.pyecharts.org/#/zh-cn/charts_base?id=bar%ef%bc%88%e6%9f%b1%e7%8a%b6%e5%9b%be%e ...

  3. Python pyecharts绘制饼图

    一.pyecharts绘制饼图语法简介 饼图主要用于表现不同类目的数据在总和中的占比.每个的弧度不是数据量的占比pie.add()方法的用法add(name, attr, value, radius= ...

  4. Python pyecharts绘制漏斗图

    一.pyecharts绘制漏斗图方法简介 funnel.add()方法简介add(name, attr, value, funnel_sort="ascending", funne ...

  5. Python pyecharts绘制水球图

    一.水球图Liquid.add()方法简介 Liquid.add()方法签名add(name, data, shape='circle', liquid_color=None, is_liquid_a ...

  6. Python pyecharts绘制折线图

    一.pyecharts绘制折线图line.add()方法简介 line.add()方法简介 add(name,x_axis,y_axis,is_symbol_show=True, is_smooth= ...

  7. Python pyecharts绘制词云图

    一.pyecharts绘制词云图WordCloud.add()方法简介 WordCloud.add()方法简介 add(name,attr,value, shape="circle" ...

  8. python可视化pyecharts

    python可视化pyecharts 简单介绍 pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化 ...

  9. pyecharts绘制geo地图

    pyecharts是一种非常强大的绘图python库,绘制的图形非常好看,并且有代表性,不仅仅是地图,还可以绘制条形图.饼图.词云图等等. # 安装方法 pip install pyecharts # ...

  10. 第八章用matplotlib、seaborn、pyecharts绘制散点图

    文章目录 散点图 matplotlib绘制散点图 seaborn绘制散点图 pyecharts绘制散点图 源码地址 本文可以学习到以下内容: matplotlib 中文乱码解决办法 seaborn 中 ...

随机推荐

  1. Vue3.0里为什么要用 Proxy API 替代 defineProperty API

    一.Object.defineProperty 定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象 为什么能实现响应式 ...

  2. three.js使用Instanced Draw+Frustum Cull+LOD来渲染大场景(开源)

    大家好,本文使用three.js实现了渲染大场景,在移动端也有较好的性能,并给出了代码,分析了关键点,感谢大家~ 关键词:three.js.Instanced Draw.大场景.LOD.Frustum ...

  3. 同为博客,不同风格 ——Hexo另类搭建

    ​简介:通过阿里云云开发平台快速由Hexo创建赛博朋克风格的博客. 一  .通过云开发平台快速创建初始化应用 1.创建相关应用模版请参考链接:Hexo博客框架-轻量.一令部署 2.完成创建后就可以在g ...

  4. Spring Boot 微服务性能下降九成!使用 Arthas 定位根因

    简介: 接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测不达标. 背景 接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测 ...

  5. 解密 Dubbo 三大中心的部署架构

    ​简介:Dubbo作为一个微服务框架,Dubbo SDK与应用服务绑定在同一个进程内,它跟随着应用服务被部署在分布式集群各个位置,为了在分布式环境下实现各个应用服务间的协作, Dubbo 定义了一些中 ...

  6. 重磅发布|新一代云原生数据仓库AnalyticDB「SQL智能诊断」功能详解

    ​简介: AnalyticDB For MySQL为用户提供了高效.实时.功能丰富并且智能化的「SQL智能诊断」和「SQL智能调优」功能,提供用户SQL性能调优的思路.方向和具体的方法,降低用户使用成 ...

  7. 2019-6-11-C#-标准性能测试

    title author date CreateTime categories C# 标准性能测试 lindexi 2019-06-11 08:36:22 +0800 2018-06-18 15:58 ...

  8. CSS属性继承问题,那些会被继承,哪些不继承?

    总的来能被继承的就是三大类 一,字体有关的的,font-开头的 二,文本有关的,text- 开头的 三,visibility , cursor 其它的基本都是不能被继承 比如说这个,你以为它继承了ma ...

  9. Servlet注解的使用,简化配置 以及,使用模板方法设计模式优化oa项目

    Servlet注解的使用,简化配置 以及,使用模板方法设计模式优化oa项目 每博一文案 有句谚语说:"一怒之下踢石头,只有痛着脚趾头." 比一件糟糕的事情更可拍的,是你用糟糕的态度 ...

  10. 请查收这份 6.3k star的 Java 攻城狮学习指南!

    大家好,我是 Java陈序员. 自从一入 Java 开发的坑,可谓是每天过得神清气爽(水深火热). 每天不是被项目经理赶进度,就是被测试小姐姐追着改 Bug!都没有时间好好学习(摸鱼)了! 今天给大家 ...