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字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
Python smallseg分词用法实例分析
May 28 Python
python创建临时文件夹的方法
Jul 06 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
Python Grid使用和布局详解
Jun 30 Python
Linux下python3.7.0安装教程
Jul 30 Python
Flask框架工厂函数用法实例分析
May 25 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
Django 返回json数据的实现示例
Mar 05 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 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变量修饰符static的使用
2013/06/28 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
JQuery toggle使用分析
2009/11/16 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python映射拆分操作符用法实例
2015/05/19 Python
常见python正则用法的简单实例
2016/06/21 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
利用python获取Ping结果示例代码
2017/07/06 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
Pytorch 实现权重初始化
2019/12/31 Python
opencv python如何实现图像二值化
2020/02/03 Python
Python如何将模块打包并发布
2020/08/30 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
美术国培研修感言
2014/02/12 职场文书
家长对孩子的感言
2014/03/10 职场文书
初中班主任评语大全
2014/04/24 职场文书