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中对list去重的多种方法
Sep 18 Python
python实现汉诺塔方法汇总
Jul 25 Python
python如何实现内容写在图片上
Mar 23 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
django多个APP的urls设置方法(views重复问题解决)
Jul 19 Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 Python
Django之PopUp的具体实现方法
Aug 31 Python
python字符串反转的四种方法详解
Dec 02 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
python基于opencv批量生成验证码的示例
Apr 28 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的FTP学习(二)
2006/10/09 PHP
php 日期时间处理函数小结
2009/12/18 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
js 操作css实现代码
2009/06/11 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
python实现的一个火车票转让信息采集器
2014/07/09 Python
简单理解Python中的装饰器
2015/07/31 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
利用Python开发实现简单的记事本
2016/11/15 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
Python如何读取文件中图片格式
2020/01/13 Python
Python如何实现FTP功能
2020/05/28 Python
公务员年总结的自我评价
2013/10/25 职场文书
工作会议欢迎词
2014/01/16 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
导游词之江南周庄
2019/12/06 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL