Python学习之用pygal画世界地图实例


Posted in Python onDecember 07, 2017

有关pygal的介绍和安装,大家可以参阅pip和pygal的安装实例教程,然后利用pygal实现画世界地图。代码如下:

#coding=utf-8 
import json 
import pygal.maps.world 
#Pygal样式保存在模块style中,包括RotateStyle调整颜色和LightColorizedStyle加亮颜色 
#也可以写成from pygal.style import LightColorizedStyle, RotateStyle 
import pygal.style 
from country_codes import get_country_code 
 
 #将数据加载到列表中 
filename='population_data.json' 
with open(filename) as f: 
  pop_data=json.load(f) 
 
 #创建一个包含人口数量的字典 
cc_populations={} 
for pop_dict in pop_data: 
  if pop_dict['Year'][:4]=='2010': 
    country_name=pop_dict['Country Name'] 
    poplulation=int(pop_dict['Value']) 
    code=get_country_code(country_name) 
    if code: 
      cc_populations[code]=poplulation 
 
 
 #根据人口数量分组 
cc_pops_1,cc_pops_2,cc_pops_3={},{},{} 
for cc,pop in cc_populations.items(): 
  if pop < 10000000: 
    cc_pops_1[cc] = pop 
  elif pop < 1000000000: 
    cc_pops_2[cc] = pop 
  else: 
    cc_pops_3[cc] = pop 
print len(cc_pops_1),len(cc_pops_2),len(cc_pops_3) 
 
 
 #画图 
#wm_style是一个样式对象,第一个实参表示颜色,十六进制格式,分别表示红绿蓝的分量(RGB),第二个实参表示加亮颜色主题 
wm_style=pygal.style.RotateStyle('#3399AA',base_style=pygal.style.LightColorizedStyle) 
wm=pygal.maps.world.World(style=wm_style) 
wm.title="World Population in 2010,by Country" 
 
#add接收一个标签和一个列表,此例中标签为人口数量区间,列表是国家和人口数量的列表 
wm.add('0-10m',cc_pops_1) 
wm.add('10m-1bn',cc_pops_2) 
wm.add('>1bn',cc_pops_3) 
 
wm.render_to_file('world_population.svg')

注意:

1.有些书上写的国别码是在pygal.i18n中的COUNTRIES,我importpygal.i18n会报错,改为pygal.maps.world模块成功

from pygal.maps.world import COUNTRIES

或者使用如下方式,不是很明白这两种有什么区别,都运行正常

from pygal_maps_world.i18n import COUNTRIE

2.pygal提供的图标类型WorldMap我也没找到,创建实例wm=pygal.WorlgMap()报错,改为

wm=pygal.maps.world.World()

3.wm_style是一个样式对象,用来展示图的颜色和亮度等,LightColorizedStyle和RotateStyle

但是只使用LightColorizedStyle,无法控制使用的颜色,pygal会选择默认基色。(效果如图1)

wm_style=pygal.style.LightColorizedStyle

设置自己喜欢的颜色,也可以不写base_style(效果如图2,my_style如下)

wm_style=pygal.style.RotateStyle('#3399AA',base_style=pygal.style.LightColorizedStyle)

Python学习之用pygal画世界地图实例

Python学习之用pygal画世界地图实例

总结

以上就是本文关于Python学习之用pygal画世界地图实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python与shell的3种交互方式介绍
Apr 11 Python
python实现折半查找和归并排序算法
Apr 14 Python
python生成密码字典的方法
Jul 06 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
pytorch 自定义数据集加载方法
Aug 18 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
浅析Python打包时包含静态文件处理方法
Jan 15 Python
Pycharm 如何设置HTML文件自动补全代码或标签
May 21 Python
Pytorch可视化的几种实现方法
Jun 10 Python
用Pygal绘制直方图代码示例
Dec 07 #Python
[原创]pip和pygal的安装实例教程
Dec 07 #Python
利用Python进行异常值分析实例代码
Dec 07 #Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 #Python
python实现对excel进行数据剔除操作实例
Dec 07 #Python
Python编程实现使用线性回归预测数据
Dec 07 #Python
机器学习10大经典算法详解
Dec 07 #Python
You might like
phpmyadmin操作流程
2006/10/09 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
详解python3实现的web端json通信协议
2016/12/29 Python
python多进程实现进程间通信实例
2017/11/24 Python
Python遍历pandas数据方法总结
2018/02/09 Python
python实现log日志的示例代码
2018/04/28 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
如何编写python的daemon程序
2021/01/07 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
即兴演讲稿
2014/01/04 职场文书
学校节能减排倡议书
2014/05/16 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
财务会计实训报告
2014/11/05 职场文书
本溪关门山导游词
2015/02/09 职场文书
小学教代会开幕词
2016/03/04 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
Redis可视化客户端小结
2021/06/10 Redis
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android