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模块学习 filecmp 文件比较
Aug 27 Python
Python3.0与2.X版本的区别实例分析
Aug 25 Python
python 循环while和for in简单实例
Aug 16 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 Python
Python装饰器使用你可能不知道的几种姿势
Oct 25 Python
Python3变量与基本数据类型用法实例分析
Feb 14 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
如何将json数据转换为python数据
Sep 04 Python
python绘制汉诺塔
Mar 01 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 Python
python垃圾回收机制原理分析
Apr 13 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的一些基础知识分享
2011/07/27 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP字符串的连接的简单实例
2013/12/30 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
Python中is和==的区别详解
2018/11/15 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
Python如何实现爬取B站视频
2020/05/20 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
善意的谎言事例
2014/02/15 职场文书
团日活动总结
2014/04/28 职场文书
大学生个人求职信例文
2014/07/07 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
小组组名及励志口号
2015/12/24 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python
配置nginx负载均衡
2022/05/06 Servers