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求pi的方法
Oct 08 Python
python中字典(Dictionary)用法实例详解
May 30 Python
Python实现简单登录验证
Apr 13 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
python实现kMeans算法
Dec 21 Python
python使用scrapy发送post请求的坑
Sep 04 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
Python 下载及安装详细步骤
Nov 04 Python
Python Selenium截图功能实现代码
Apr 26 Python
浅谈python 调用open()打开文件时路径出错的原因
Jun 05 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
利用python为PostgreSQL的表自动添加分区
Jan 18 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
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
PyQt5实现下载进度条效果
2018/04/19 Python
Python连接Redis的基本配置方法
2018/09/13 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
社会学专业学生职业规划书
2014/02/07 职场文书
政法学院毕业生求职信
2014/02/28 职场文书
《长相思》听课反思
2014/04/10 职场文书
植树节口号
2014/06/21 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
运动会800米赞词
2015/07/22 职场文书
初中班主任心得体会
2016/01/07 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
利用Python多线程实现图片下载器
2022/03/25 Python