第十六章 下载数据
根据书本打代码时发现两个问题
1.from pygal.i18n 这个模块找不到:
解决:
pip3 install pygal_maps_world
from pygal_maps_world.i18n import COUNTRIES
2.pygal.Worldmap()找不到
解决:
wm = pygal.maps.world.World()
16.1 CSV文件格式
16.1.1 分析CSV文件头
- 打开文件,获得文件对象
- 调用csv.reader(文件对象),读取文件,得到与文件相关联的阅读器
- next(阅读器):返回文件的下一行
16.1.2 打印文件头及其位置
- enumerate():获取每个元素的索引及其值
16.1.3 提取并读取数据
- for循环使用阅读器读下一行
- 再用int()将字符串转换成int类型
16.1.5 模块datetime
- datetime.striptime("转换时间","转换时间读取格式")
- %Y-:第一个连字符前面的部分视为四位的年份
- %m-:将第二个字符前面的部分视为表示月份的数字
- %d:让字符串的最后一部分视为月份中的一天
- %A:星期的名称
- %B:月份的名称
- %y:两位的年份
- %H:24小时制的小时数
- %I:12小时制的小时数
- %p:am或pm
- %M:分钟数
- %S:秒数
16.1.6 在图表中添加日期
- fig.autofmt_xdata():绘制斜的日期标签
16.1.9 给图表区域着色
- alpha:指定颜色的透明度,0为完全透明,1为完全不透明
- fill_between():传递一个x值,两个y值,facecolor指定了填充区域的着色
16.1.10 错误检查
- try-except-else:检查ValueError
16.2 制作世界人口地图:JSON格式
16.2.2 提取相关数据
- import json:导入json模块
- json.load():将数据转换为Python能够处理的格式
- json列表中每个元素都是一个字典,键-值对形式
16.2.3 将字符串转换为数字值
- 使用int()
- 如果出现小数点,可以先用float()转化为浮点数,再用int()转化为整数
16.2.4 获取两个字母的国别码
- pygal使用的国别码存储在模块i18n中
- 字典COUNTERIES包含的键和值分别为两个字母的国别码和国家名
- get_country_code():接受国家名
16.2.5 制作世界地图
- pygal根据国别码可以制作世界地图
- pygal.Worldmap()
- add():接受一个标签和一个列表,列表包含我们要突出的国家的国别码
16.2.6 在世界地图上呈现数字数据
- add()方法中传递列表时,在国别码之后指定数据
16.2.9 使用pygal设置世界地图的样式
扫描二维码关注公众号,回复:
1919006 查看本文章
- from pygal.style import RotateStyle
- RotateStyle():接受一个实参,十六进制的RGB颜色
16.2.10 加亮颜色主题
- from pygal.style import LightColorizeStyle
- 可以独立使用,也可以和rotatestyle一起使用作为base_style