資料爬取到之後,就要分析呈現了。爬蟲還在學習中,偶爾開拓一下思路,看看圖和表。
本節關於簡單的資料呈現,世界人口地圖。
pygal官方庫pygal:官方文件,雖是英文,但講的還是很詳細的,多讀多查多用。
自取吧,裡面公開了很多資料
裡面有注釋,不是很複雜,用到的就是字典。
# -*- coding: utf-8 -*-
"""created on thu aug 29 15:34:08 2019
@author: gwiely
"""import json
from pygal_maps_world.i18n import countries
import pygal_maps_world.maps
#from pygal_maps_world.style import rotatestyle #更改地圖顯示樣式 的庫?
filename = "population_data.json"
def get_country_code(country_name):
"""根據pygal_maps_world.i18n庫, 提取出國別碼"""
for code, name in countries.items():
if name == country_name:
return code
return none
def get_data():
all_data = {}
"""從檔案中根據國別碼匹配出該國人口數"""
with open(filename) as f:
result = json.load(f)
for items in result:
if items['year'] == 2016:
country_name = items['country name']
country_code = get_country_code(country_name)
population = items['value']
if country_code:
# print(country_code + ":" + str(population))
all_data[country_code] = int(population)
else:
continue
# print("error-: "+country_name)
return all_data
#print(get_data())
def main():
all_data = get_data()
# 新建三個字典,按人口進行分別儲存,
pop_1, pop_2, pop_3 = {},{},{}
for code, population in all_data.items():
if population < 10000000:
pop_1[code] = population
elif population < 1000000000:
pop_2[code] = population
else:
pop_3[code] = population
# print(pop_1, pop_2, pop_3)
print("<10m人口的國家個數:{},10m~1bn人口的國家個數:{},>1bn人口的國家個數:{}".format(len(pop_1), len(pop_2), len(pop_3)))
當然,還有許多樣式或者變化,一起探索吧。
python資料視覺化 pygal
pygal.line 基本單線型 pygal.stackedline fill true 相同的圖形但具有堆疊值和填充渲染 view.x labels map str,range 1,34 設定x軸取值範圍 1 單系列 1 import pygal 23 frequency 10,20,30,40,...
python資料分析之pygal畫廊
視覺化包pygal可以生成可縮放的向量圖形檔案,對於需要在尺寸不同的螢幕上顯示的圖表很有用,它將自動縮放,以適合 者的螢幕。import numpy as np class die def init self,num sizes 6 self.num sizes num sizes def roll...
Python 視覺化包Pygal
要了解使用 pygal 可建立什麼樣的圖表,請檢視圖表型別畫廊 訪問 1 例項 模擬篩子 die.py檔案 from random import randint class die def init self,num sides 6 self.num sides num sides def roll...