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中的自定义函数学习笔记
Sep 23 Python
python获取当前时间对应unix时间戳的方法
May 15 Python
Python类的用法实例浅析
May 27 Python
Python实现简单HTML表格解析的方法
Jun 15 Python
Python 3.x 连接数据库示例(pymysql 方式)
Jan 19 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
Django使用unittest模块进行单元测试过程解析
Aug 02 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
Python list和str互转的实现示例
Nov 16 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
python实现Thrift服务端的方法
Apr 20 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 Document 代码注释规范
2009/04/13 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
js实现tab选项卡切换功能
2017/01/13 Javascript
JS实现复制功能
2017/03/01 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
vue多层嵌套路由实例分析
2019/03/19 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
Python生成随机密码
2015/03/10 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
怎样创建、运行java程序
2014/08/01 面试题
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
假日旅行社实习自我鉴定
2013/09/24 职场文书
面试后感谢信怎么写
2014/02/01 职场文书
应届生自荐信范文
2014/02/21 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
一年级小学生评语
2014/04/22 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
财产分割协议书范本
2014/11/03 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python