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实现倒计时的示例
Feb 14 Python
Windows系统下安装Python的SSH模块教程
Feb 05 Python
Python2中的raw_input() 与 input()
Jun 12 Python
简介二分查找算法与相关的Python实现示例
Aug 26 Python
Python+Django搭建自己的blog网站
Mar 13 Python
python使用Matplotlib画条形图
Mar 25 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
Python基础学习之函数方法实例详解
Jun 18 Python
python装饰器练习题及答案
Nov 01 Python
如何基于python操作json文件获取内容
Dec 24 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
全网非常详细的pytest配置文件
Jul 15 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
Python的动态重新封装的教程
2015/04/11 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
《十六年前的回忆》教学反思
2014/02/14 职场文书
干部个人对照检查材料
2014/08/25 职场文书
团代会邀请函
2015/02/02 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
行政处罚事先告知书
2015/07/01 职场文书
MySQL约束超详解
2021/09/04 MySQL
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS