Python学习之用pygal画世界地图实例
作者:waiwai3 发布时间:2021-03-22 13:04:47
标签:python,pygal,绘制
有关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)
来源:http://blog.csdn.net/waiwai3/article/details/77725748
0
投稿
猜你喜欢
- HMAC 算法可用于验证在应用程序之间传递或存储在潜在易受攻击位置的信息的完整性。基本思想是生成与共享密钥组合的实际数据的加密散列。然后,可
- 寻找含有关键字文件和删除文件夹我们往往在操作文件时,会不知道文件具体的路径。一般如果只是处理一个文件的话我们可以在文件所在的文件夹下运行py
- 有时候我们只知道列的名字,但是不知道这列数据到底在哪个表里面,那么可以用下面的办法把含有这列数据的表查找出来。Select O.name o
- 你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短。从此解放上班时间,研究更多更有效率的工作方法。进一步提升
- Javascript有没有内存泄露?如果有,如何避免?鉴于最近有好几个人问到我类似的问题,看来大家对这部分内容还没有系统的研究过,因此,打算
- 1、获取秒级时间戳与毫秒级时间戳、微秒级时间戳import timeimport datetimet = time.time()print
- 下边是我对部分内容的总结,里边偏向了T-SQL语句实现的总结,对于SQL Server Management Studio中对象管理器的操作
- 如下所示:# the basic ways = 0for x in range(10): s += x# the right ways =
- 本文实例讲述了Django框架静态文件使用/中间件/禁用ip功能。分享给大家供大家参考,具体如下:静态文件一、静态文件的使用静态文件:网页中
- 视频观看视频图像精灵这是我们教程系列“使用 Pygame 进行游戏开发”的第 3 部分。它适用于对游
- 要开发一个基于数据库的应用系统,其中最关键的一步就是整个系统所依据的数据库的建模设计,从逻辑的到物理的,一个环节疏于设计,整个的应用系统便似
- tensorflow中的conv2有padding=‘SAME'这个参数。吴恩达讲课中说到当padding=(f-1)/2(f为卷积
- 由于一些不可预测的因素,必须使用python2.7进行开发,所以研究了一下怎么在Anaconda3下建立2.7的开发环境,发现十分方便,在此
- 前言哈喽!哈喽。栗子上线啦~要说什么游戏能够获得大家的喜爱?唯射击游戏莫属。此前大火手游的《刺激战场》当然现在是叫做《和平精英》啦,想当初我
- 问题描述MySQL 启动成功,使用 ps -ef |grep mysql 可以看到进程,如下图:也可以在服务器登陆,如下图:但是使用 net
- Python中怎么使用第三方模块?在Python可以在代码中导入模块,然后就可以使用第三方模块了。import 语句想使用Python源文件
- 前言我们实战经常会遇到以下几个问题:1、遇到一个利用步骤十分繁琐的漏洞,中间错一步就无法利用2、挖到一个通用漏洞,想要批量刷洞小赚一波,但手
- 利用空闲几天把《JavaScript权威指南》安静的读了一篇。真是一本好书呀!呵呵,这句话见的太多了。好在什么地方呢?听我慢慢道来。从开始接
- 切片从list或tuple中取部分元素。list = [1, 2, 3, 4]list[0 : 3] # [1, 2, 3]list[-2
- 在asp.net 2.0中,很多情况下,使用gridview控件的话,甚至只需要拖拉控件,设置属性就可