码迷,mamicode.com
首页 > 编程语言 > 详细

python-使用pyecharts绘制各省份高校数量图

时间:2020-04-04 20:29:14      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:技术   href   生成   等价   华南理工   tar   交互   它的   学校   

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绘制各省份高校数量图

标签:技术   href   生成   等价   华南理工   tar   交互   它的   学校   

原文地址:https://www.cnblogs.com/mrlayfolk/p/12633685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!