今天,老板又突发奇想,觉得光看excel表,很无聊,所以要把数据放到地图上去,所以我们今天来研究下,怎么在地图上画散点图,今天主要的内容就这样了
用库里自带的地理信息画图
异常情况处理
然后,第二期我们在研究下如何导入经纬度信息
今天我们换一个库,不翻Matplotlib 的牌子了,我们试试牛逼哄哄的Echarts python版本
首先我们来看看官方的例子
很牛逼,简简单的就能在地图上画上散点,还加上一个可以拉动的筛选条子
我们看看官方实例的代码:
from pyecharts import Geo
data = [
("海门", 9),("鄂尔多斯", 12),("招远", 12),("舟山", 12),("齐齐哈尔", 14),("盐城", 15),
("赤峰", 16),("青岛", 18),("乳山", 18),("金昌", 19),("泉州", 21),("莱西", 21),
("日照", 21),("胶南", 22),("南通", 23),("拉萨", 24),("云浮", 24),("梅州", 25),
("文登", 25),("上海", 25),("攀枝花", 25),("威海", 25),("承德", 25),("厦门", 26),
("汕尾", 26),("潮州", 26),("丹东", 27),("太仓", 27),("曲靖", 27),("烟台", 28),
("福州", 29),("瓦房店", 30),("即墨", 30),("抚顺", 31),("玉溪", 31),("张家口", 31),
("阳泉", 31),("莱州", 32),("湖州", 32),("汕头", 32),("昆山", 33),("宁波", 33),
("湛江", 33),("揭阳", 34),("荣成", 34),("连云港", 35),("葫芦岛", 35),("常熟", 36),
("东莞", 36),("河源", 36),("淮安", 36),("泰州", 36),("南宁", 37),("营口", 37),
("惠州", 37),("江阴", 37),("蓬莱", 37),("韶关", 38),("嘉峪关", 38),("广州", 38),
("延安", 38),("太原", 39),("清远", 39),("中山", 39),("昆明", 39),("寿光", 40),
("盘锦", 40),("长治", 41),("深圳", 41),("珠海", 42),("宿迁", 43),("咸阳", 43),
("铜川", 44),("平度", 44),("佛山", 44),("海口", 44),("江门", 45),("章丘", 45),
("肇庆", 46),("大连", 47),("临汾", 47),("吴江", 47),("石嘴山", 49),("沈阳", 50),
("苏州", 50),("茂名", 50),("嘉兴", 51),("长春", 51),("胶州", 52),("银川", 52),
("张家港", 52),("三门峡", 53),("锦州", 54),("南昌", 54),("柳州", 54),("三亚", 54),
("自贡", 56),("吉林", 56),("阳江", 57),("泸州", 57),("西宁", 57),("宜宾", 58),
("呼和浩特", 58),("成都", 58),("大同", 58),("镇江", 59),("桂林", 59),("张家界", 59),
("宜兴", 59),("北海", 60),("西安", 61),("金坛", 62),("东营", 62),("牡丹江", 63),
("遵义", 63),("绍兴", 63),("扬州", 64),("常州", 64),("潍坊", 65),("重庆", 66),
("台州", 67),("南京", 67),("滨州", 70),("贵阳", 71),("无锡", 71),("本溪", 71),
("克拉玛依", 72),("渭南", 72),("马鞍山", 72),("宝鸡", 72),("焦作", 75),("句容", 75),
("北京", 79),("徐州", 79),("衡水", 80),("包头", 80),("绵阳", 80),("乌鲁木齐", 84),
("枣庄", 84),("杭州", 84),("淄博", 85),("鞍山", 86),("溧阳", 86),("库尔勒", 86),
("安阳", 90),("开封", 90),("济南", 92),("德阳", 93),("温州", 95),("九江", 96),
("邯郸", 98),("临安", 99),("兰州", 99),("沧州", 100),("临沂", 103),("南充", 104),
("天津", 105),("富阳", 106),("泰安", 112),("诸暨", 112),("郑州", 113),("哈尔滨", 114),
("聊城", 116),("芜湖", 117),("唐山", 119),("平顶山", 119),("邢台", 119),("德州", 120),
("济宁", 120),("荆州", 127),("宜昌", 130),("义乌", 132),("丽水", 133),("洛阳", 134),
("秦皇岛", 136),("株洲", 143),("石家庄", 147),("莱芜", 148),("常德", 152),("保定", 153),
("湘潭", 154),("金华", 157),("岳阳", 169),("长沙", 175),("衢州", 177),("廊坊", 193),
("菏泽", 194),("合肥", 229),("武汉", 273),("大庆", 279)]
geo = Geo("全国主要城市空气质量", "data from pm2.5", title_color="#fff",
title_pos="center", width=1200,
height=600, background_color='#404a59')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0, 200], visual_text_color="#fff",
symbol_size=15, is_visualmap=True)
geo.render()
复制代码
代码很简单:
data = [ ("海门", 9),("鄂尔多斯", 12)]
复制代码
数据用列表,包着元组,地名用文本,应该地图自带了地名
geo = Geo("全国主要城市空气质量", "data from pm2.5", title_color="#fff",
title_pos="center", width=1200,
height=600, background_color='#404a59')
复制代码
在geo里确定了标题,子标题,标题颜色,位置,大小,和背景颜色等,而且颜色用的#404a59,这种十六进制的表达方法,可以在网上找到专门的在线转换网站,把RBG值转换成这种十六进制。
具体可以看见官方对geo里参数的描述
attr, value = geo.cast(data)
复制代码
这个应该是geo自带的数据格式转换方法,官方的文档里有写到
attr -> list
属性名称
value -> list
属性所对应的值
我们可以看到,cast把元组拆开了,成了两个list,attr列表里是地名,value列表里是值
geo.add("", attr, value, visual_range=[0, 200], visual_text_color="#fff",
symbol_size=15, is_visualmap=True)
复制代码
add里包括图中的细节部分,我就直接把官方的抄过来啦!!图例名称
attr -> list
属性名称
value -> list
属性所对应的值
type -> str
图例类型,有'scatter', 'effectScatter', 'heatmap'可选。默认为 'scatter'
maptype -> str
地图类型。 支持 china、world、安徽、澳门、北京、重庆、福建、福建、甘肃、广东,广西、广州、海南、河北、黑龙江、河南、湖北、湖南、江苏、江西、吉林、辽宁、内蒙古、宁夏、青海、山东、上海、陕西、山西、四川、台湾、天津、香港、新疆、西藏、云南、浙江,以及 363个二线城市地图。提醒:在画市级地图的时候,城市名字后面的‘市’要省去了,比如,石家庄市的‘市’不要提,即‘石家庄’就可以了。
symbol_size -> int
标记图形大小。默认为 12
border_color -> str
地图边界颜色。默认为 '#111'
geo_normal_color -> str
正常状态下地图区域的颜色。默认为 '#323c48'
geo_emphasis_color -> str
高亮状态下地图区域的颜色。默认为 '#2a333d'
geo_cities_coords -> dict
用户自定义地区经纬度,类似如 {'阿城': [126.58, 45.32],} 这样的字典,当用于提供了该参数时,将会覆盖原有预存的区域坐标信息。
is_roam -> bool
是否开启鼠标缩放和平移漫游。默认为 True
如果只想要开启缩放或者平移,可以设置成'scale'或者'move'。设置成 True 为都开启
看上回去很简单啊,让我们亲自把自己的数据丢进去看看,首先安装包
pip install pyecharts
复制代码
然而,然而,然而~~~~
一切事情都没有那么顺利的!!!!!
为什么我显示不出地图呢~~~~????,
我们来解决第一个问题:为什么我显示不出地图背景!
让我们继续翻官方的文档,原来:新的库不带地图了,要自己安装,
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
复制代码
好的,我们安装完后继续!
纳尼,
依旧显示不出来地图!~!~!
最后,经过我百般打探,试验,终于发现了解决方法!!!
把这三个包删除了,重新在安装一遍,吐血
好的我们,第一期教学完成,研究了官方的例子,然后我们下期尝试用自己的经纬度excel表和数据,然生成