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) 

总结

以上就是本文关于Python学习之用pygal画世界地图实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

(0)

相关推荐

  • 用Pygal绘制直方图代码示例

    Pygal可用来生成可缩放的矢量图形文件,对于需要在尺寸不同的屏幕上显示的图表,这很有用,可以自动缩放,自适应观看者的屏幕 1.Pygal模块安装 pygal的安装这里暂不介绍,大家可参阅<pip和pygal的安装实例教程> 2.Pygal画廊-直方图 模拟掷骰子,分析最后的结果,生成图形 创建die.py筛子类文件: from random import randint class Die(): '''扔骰子的类''' def __init__(self,num_sides=6): self

  • python用Pygal如何生成漂亮的SVG图像详解

    前言 SVG可以算是目前最最火热的图像文件格式了,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它是基于XML(Extensible Markup Language),由World Wide Web Consortium(W3C)联盟进行开发的.严格来说应该是一种开放标准的矢量图形语言,可让你设计激动人心的.高分辨率的Web图形页面.用户可以直接用代码来描绘图像,可以用任何文字处理工具打开SVG图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到

  • pip和pygal的安装实例教程 原创

    本文分为两个部分,第一部分是关于pip,第二部分关于pygal,主要关于二者的简介以及安装过程的分享,希望对大家有所帮助. 一.pip 1.简介 pip 是一个安装和管理 Python 包的工具,python安装包的工具有easy_install, setuptools, pip,distribute等.distribute是setuptools的替代品,是对标准库disutils模块的增强,我们知道disutils主要是用来更加容易的打包和分发包,特别是对其他的包有依赖的包.distribut

  • 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

  • python学习之使用Matplotlib画实时的动态折线图的示例代码

    有时,为了方便看数据的变化情况,需要画一个动态图来看整体的变化情况.主要就是用Matplotlib库. 首先,说明plot函数的说明. plt.plot(x,y,format_string,**kwargs) x是x轴数据,y是y轴数据.x与y维度一定要对应. format_string控制曲线的格式字串 下面详细说明: color(c):线条颜色 linestyle(ls):线条样式 linewidth(lw):线的粗细 关于标记的一些参数: marker:标记样式 markeredgecol

  • Python学习笔记之列表推导式实例分析

    本文实例讲述了Python学习笔记之列表推导式.分享给大家供大家参考,具体如下: 列表推导式 列表推导式可以快速简练地创建列表 之前的复杂写法: capitalized_cities = [] for city in cities: capitalized_cities.append(city.title()) 简化后的写法: capitalized_cities = [city.title() for city in cities] 由此可见:借助列表推导式,我们可以使用 for 循环用一步创

  • 基于python实现图片转字符画代码实例

    直接上代码图片就使用我家爽妹子的吧 如果没有安装pil模块的话先cmd安装下 输入:pip install pillow # -*- coding: utf-8 -*- from PIL import Image codeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`'. '''#生成字符画所需的字符集 count = len(codeLib) def transform1

  • python学习--使用QQ邮箱发送邮件代码实例

    服务器计算数据有时需要大量的时间,使用程序发送一封邮件是一种免费便捷的通知方式,可以让我们及时收到程序中断或者程序运行完成的信息,而不用一直盯着屏幕看.以下以python为例写一个邮件发送程序: import smtplib from email.mime.text import MIMEText from email.header import Header class Mail(object): def __init__(self,user,token): self.host = "smtp

  • Python学习pygal绘制线图代码分享

    pygal的安装大家可以参阅:pip和pygal的安装实例教程 线图: import pygal line_chart = pygal.Line() line_chart.title = 'Browser usage evolution (in %)' line_chart.x_labels = map(str, range(2002, 2013)) line_chart.add('Firefox', [None, None, 0, 16.6, 25, 31, 36.4, 45.5, 46.3,

  • python用pyecharts画地图实例介绍

    版本pyecharts 分为 v0.5.X 和 v1 两个大版本,v0.5.X 和 v1 间不兼容,v1 是一个全新的版本 v0.5.X支持 Python2.7,3.4+v1仅支持 Python3.6+ 本文使用的是v1详见官方文档 数据来源只是学习方法,数据来源于网络查找 中国地图 from pyecharts.charts import Map import pyecharts.options as opts import os # 中国地图 province_distribution =

  • Python学习笔记之迭代器和生成器用法实例详解

    本文实例讲述了Python学习笔记之迭代器和生成器用法.分享给大家供大家参考,具体如下: 迭代器和生成器 迭代器 每次可以返回一个对象元素的对象,例如返回一个列表.我们到目前为止使用的很多内置函数(例如 enumerate)都会返回一个迭代器. 是一种表示数据流的对象.这与列表不同,列表是可迭代对象,但不是迭代器,因为它不是数据流. 生成器 是使用函数创建迭代器的简单方式.也可以使用类定义迭代器 下面是一个叫做 my_range 的生成器函数,它会生成一个从 0 到 (x - 1) 的数字流:

  • Python学习笔记之字符串和字符串方法实例详解

    本文实例讲述了Python学习笔记之字符串和字符串方法.分享给大家供大家参考,具体如下: 字符串 在 python 中,字符串的变量类型显示为 str.你可以使用双引号 " 或单引号 ' 定义字符串 定义字符串 my_string = 'this is a string!' my_string2 = "this is also a string!!!" # Also , we can use backslash '/' to escape quotes. this_strin

  • python学习之matplotlib绘制散点图实例

    要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点: """使用scatter()绘制散点图""" import matplotlib.pyplot as plt plt.scatter(2, 4) plt.show() 下面来设置输出的样式:添加标题,给轴加上标签,并确保所有文本都大到能够看清.并使用scatter()绘制一系列点 """使用scatter()绘制散点图&

随机推荐