国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python大數據可視化制作全球人口地形圖

89542767 / 825人閱讀

  本文主要是給大家介紹了python大數據可視化制作全球人口地形圖的實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家盡可能發展,盡早漲薪


  序言


  信息來源:population_data.json,


  先看看數據信息長什么樣


  [
  {
  "CountryName":"ArabWorld",
  "CountryCode":"ARB",
  "Year":"1960",
  "Value":"96388069"
  },
  {
  "CountryName":"ArabWorld",
  "CountryCode":"ARB",
  "Year":"1961",
  "Value":"98882541.4"
  },
  省去。。。
  ]


  '''這一個文檔實際上是1個比較長的Python目錄,在其中各個原素是一個包括4個鍵的詞典:


  國家名、所在國碼、年代及其表明人口總數數值。


  大家只關注各個國家2010年人口總數,所以我們最先撰寫1個打印出這些數據的流程:'''


  importjson
  #將數據加載到了一個頁面上
  filename='population_data.json'
  withopen(filename)asf:
  pop_data=json.load(f)
  #打印出各個國家2010年人口總數
  forpop_dicinpop_data:
  ifpop_dic["Year"]=='2010':
  country_name=pop_dic['CountryName']
  population=int(float(pop_dic['Value']))#population_data.json中的每一個鍵合值全是字符串數組。為處理這種人口統計,我們應該將表明人口總數的字符串數組轉化為數字值,因此大家應用函數公式int():
  print(country_name+":"+str(population))
  rabWorld:357868000
  Caribbeansmallstates:6880000
  EastAsia&Pacific(allincomelevels):2201536674
  EastAsia&Pacific(developingonly):1961558757
  Euroarea:331766000
  Europe&CentralAsia(allincomelevels):890424544
  Europe&CentralAsia(developingonly):405204000


  獲得兩個字母的所在國碼


  '''制作地圖前,還要處理數據信息存有的最后的問題。Pygal里的地圖設計專用工具規定數據信息為特殊的文件格式:用所在國碼表明我國,及其用數字表示人口總數。處理自然地理政冶數據信息時,常常需要使用好多個規范化所在國碼集。


  population_data.json其中包含是指三個英文字母的所在國碼,但Pygal應用兩個字母的所在國碼。我們應該想盡辦法依據國家名獲得兩個字母的所在國碼。


  Pygal所使用的所在國碼存放在控制模塊i18n(internationalization的簡稱)中。


  詞典COUNTRIES蘊含的鍵合值分別是兩個字母的所在國碼和國家名。


  要檢查這種所在國碼,可以從控制模塊i18n中導進這一個詞典,直接打印其鍵合值:'''


  from pygal_maps_world.i18n import COUNTRIES
  for country_code in sorted(COUNTRIES.keys()):
  print(country_code,COUNTRIES[country_code])
  ad Andorra
  ae United Arab Emirates
  af Afghanistan
  al Albania


  為獲取國別碼,我們將編寫一個函數,它在COUNTRIES中查找并返回國別碼。


  我們將這個函數放在一個名為country_codes的模塊中,以便能夠在可視化程序中導入它:


  from pygal_maps_world.i18n import COUNTRIES
  def get_country_code(country_name):
  #根據指定的國家,返回Pygal使用的兩個字母的國別碼
  for code,name in COUNTRIES.items():
  if name==country_name:
  return code
  #如果沒有找到指定的國家,就返回None
  return None
  #打印每個國家2010年的人口數量
  for pop_dic in pop_data:
  if pop_dic["Year"]=='2010':
  country_name=pop_dic['Country Name']
  population=int(float(pop_dic['Value']))#population_data.json中的每個鍵和值都是字符串。為處理這些人口數據,我們需要將表示人口數量的字符串轉換為數字值,為此我們使用函數int():
  code=get_country_code(country_name)
  if code:
  print(code+":"+str(population))
  else:
  print('error-'+":"+str(population))
  error-:357868000
  error-:6880000
  error-:2201536674
  error-:1961558757
  error-:331766000


  導致顯示錯誤消息的原因有兩個。首先,并非所有人口數量對應的都是國家,有些人口數量對應的是地區(阿拉伯世界)和經濟類群(所有收入水平)。


  其次,有些統計數據使用了不同的完整國家名(如Yemen,Rep.,而不是Yemen)。當前,我們將忽略導致錯誤的數據,看看根據成功恢復了的數據制作出的地圖是什么樣的。


  制作世界地圖


  import pygal_maps_world.maps#創建了一個Worldmap實例,并設置了該地圖的的title屬性
  wm=pygal_maps_world.maps.World()
  wm.title='North,Central,and South America'
  '''
  方法add(),它接受一個標簽和一個列表,其中后者包含我們要突出的國家的國別碼。每次調用add()都將為指定的國家
  選擇一種新顏色,并在圖表左邊顯示該顏色和指定的標簽。我們要以同一種顏色顯示整個北美地區,因此第一次調用add()
  時,在傳遞給它的列表中包含'ca'、'mx'和'us',以同時突出加拿大、墨西哥和美國。接下來,對中美和南美國家做同樣
  的處理。
  '''
  wm.add('North America',['ca','mx','us'])
  wm.add('Central America',['bz','cr','gt','hn','ni','pa','sv'])
  wm.add('South America',['ar','bo','br','cl','co','ec','gf',
  'gy','pe','py','sr','uy','ve'])
  '''

01.png

  方法render_to_file()創建一個包含該圖表的.svg文件,你可以在瀏覽器中打開它。輸出是一幅以不同顏色突出北美、


  中美和南美的地圖


  '''


  wm.render_to_file('americas.svg')


  繪制完整的世界人口地圖


  '''要呈現其他國家的人口數量,需要將前面處理的數據轉換為Pygal要求的字典格式:鍵為兩個字母的國別碼,值為人口數量。


  為此,在world_population.py中添加如下代碼:


  import json
  #將數據加載到一個列表中
  filename='population_data.json'
  with open(filename)as f:
  pop_data=json.load(f)
  def get_country_code(country_name):
  #根據指定的國家,返回Pygal使用的兩個字母的國別碼
  for code,name in COUNTRIES.items():
  if name==country_name:
  return code
  #如果沒有找到指定的國家,就返回None
  return None
  #創建一個包含人口數量是字典
  cc_populations={}
  #打印每個國家2010年的人口數量
  for pop_dic in pop_data:
  if pop_dic["Year"]=='2010':
  country_name=pop_dic['Country Name']
  population=int(float(pop_dic['Value']))#population_data.json中的每個鍵和值都是字符串。為處理這些人口數據,我們需要將表示人口數量的字符串轉換為數字值,為此我們使用函數int():
  code=get_country_code(country_name)
  if code:
  cc_populations[code]=population
  import pygal_maps_world.maps#創建了一個Worldmap實例,并設置了該地圖的的title屬性
  wm=pygal_maps_world.maps.World()
  wm.title='world population in 2010,by country'
  wm.add('2010',cc_populations)
  wm.render_to_file('world_population.svg')
  根據人口數量將國家分組
  import json
  #將數據加載到一個列表中
  filename='population_data.json'
  with open(filename)as f:
  pop_data=json.load(f)
  def get_country_code(country_name):
  #根據指定的國家,返回Pygal使用的兩個字母的國別碼
  for code,name in COUNTRIES.items():
  if name==country_name:
  return code
  #如果沒有找到指定的國家,就返回None
  return None
  #創建一個包含人口數量是字典
  cc_populations={}
  #打印每個國家2010年的人口數量
  for pop_dic in pop_data:
  if pop_dic["Year"]=='2010':
  country_name=pop_dic['Country Name']
  population=int(float(pop_dic['Value']))#population_data.json中的每個鍵和值都是字符串。為處理這些人口數據,我們需要將表示人口數量的字符串轉換為數字值,為此我們使用函數int():
  code=get_country_code(country_name)
  if code:
  cc_populations[code]=population
  ###根據人口數量將國家分3組
  cc_pop_1,cc_pop_2,cc_pop_3={},{},{}
  for cc,pop in cc_populations.items():
  if pop<10000000:
  cc_pop_1[cc]=pop
  elif pop<1000000000:
  cc_pop_2[cc]=pop
  else:
  cc_pop_3[cc]=pop
  import pygal_maps_world.maps#創建了一個Worldmap實例,并設置了該地圖的的title屬性
  wm=pygal_maps_world.maps.World()
  wm.title='world population in 2010,by country'
  wm.add('0-10m',cc_pop_1)
  wm.add('10m-1bn',cc_pop_2)
  wm.add('>1bn',cc_pop_3)
  wm.render_to_file('world_population.svg')

  

02.png

       依據Pygal設定游戲地圖的款式


  在這個圖中,依據人口總數將我國分類雖然比較合理有效,但默認顏色調整好難看。比如,在這兒,Pygal選了鮮亮的粉色和綠色基本色。


  下邊應用Pygal款式設定命令來調節色調。大家也讓Pygal應用一類基本色,但將特定該基本色,然后讓3個分類顏色區別更高


  ###依據Pygal設定游戲地圖的款式


  '''


  在這個圖中,依據人口總數將我國分類雖然比較合理有效,但默認顏色調整好難看。比如,在這兒,Pygal選了鮮亮的粉紅色


  的綠色基本色。下邊應用Pygal款式設定命令來調節色調。大家也讓Pygal應用一類基本色,但將特定該基本色,然后讓3個分類


  顏色區別更高


  '''
  ###依據人口總數將我國分類
  importjson
  #將數據加載到了一個頁面上
  filename='population_data.json'
  with open(filename)as f:
  pop_data=json.load(f)
  def get_country_code(country_name):
  #根據指定的國家,返回Pygal使用的兩個字母的國別碼
  for code,name in COUNTRIES.items():
  if name==country_name:
  return code
  #如果沒有找到指定的國家,就返回None
  return None
  #創建一個包含人口數量是字典
  cc_populations={}
  #打印每個國家2010年的人口數量
  for pop_dic in pop_data:
  if pop_dic["Year"]=='2010':
  country_name=pop_dic['Country Name']
  population=int(float(pop_dic['Value']))#population_data.json中的每個鍵和值都是字符串。為處理這些人口數據,我們需要將表示人口數量的字符串轉換為數字值,為此我們使用函數int():
  code=get_country_code(country_name)
  if code:
  cc_populations[code]=population
  ###根據人口數量將國家分3組
  cc_pop_1,cc_pop_2,cc_pop_3={},{},{}
  for cc,pop in cc_populations.items():
  if pop<10000000:
  cc_pop_1[cc]=pop
  elif pop<1000000000:
  cc_pop_2[cc]=pop
  else:
  cc_pop_3[cc]=pop
  import pygal_maps_world.maps#創建了一個Worldmap實例,并設置了該地圖的的title屬性
  from pygal.style import RotateStyle
  from pygal.style import LightColorizedStyle#加亮顏色主題
  wm_style=RotateStyle('#336699',base_style=LightColorizedStyle)
  wm=pygal_maps_world.maps.World(style=wm_style)
  wm.title='world population in 2010,by country'
  wm.add('2010',cc_populations)
  wm.add('0-10m',cc_pop_1)
  wm.add('10m-1bn',cc_pop_2)
  wm.add('>1bn',cc_pop_3)
  wm.render_to_file('world_population.svg')

  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129086.html

相關文章

  • 常用的數據視化工具

    摘要:俗話說,不會使用工具來完成任務的都是進化不完全的表現,大數據時代,可視化已經深深鉆進我們的生活,使用可視化工具也變的相當普遍,今天我們來總結下當下可視化工具都有哪些。是一個地圖庫,主要面向數據可視化用戶。 俗話說,不會使用工具來完成任務的都是進化不完全的表現,大數據時代,可視化已經深深鉆進我們的生活,使用可視化工具也變的相當普遍,今天我們來總結下當下可視化工具都有哪些。 showImg...

    philadelphia 評論0 收藏0
  • ArcGIS水文分析實戰教程(10)河流平均比降計算

    摘要:水文分析實戰教程河流平均比降計算本章導讀河流比降指的是河流任意兩端點間的高程差與兩點間的水平距離之比值,簡單的概括為單位河長內的落差,其單位一般都是。讀者可以參考水文分析實戰教程河流提取與河網分級的做法去提取。 ArcGIS水文分析實戰教程(10)河流平均比降計算 本章導讀:河流比降指的是河流任意兩端點間的高程差與兩點間的水平距離之比值,簡單的概括為單位河長內的落差,其單位一般都是‰ ...

    zhangrxiang 評論0 收藏0
  • 爬取淘寶上4000條月餅數據,制作了一個酷炫的視化屏!

    摘要:基于此,我爬取了淘寶上多條月餅的銷售數據,為大家展示了一幅漂亮的可視化大屏,解決大家心目中的問題。模塊的安裝與配置這次爬取淘寶,采用的是最簡單的方式控制瀏覽器進行自動化操作,中途只需要掃碼登陸一次,即可完成整個數據的爬取。 ...

    cod7ce 評論0 收藏0
  • ?機器學習?中Python實現視化三維熱力圖(形圖

    由于項目的需要,一直苦于將多層數據集累加起來做成一個呈堆積狀的三維圖,有點類似于地形圖(實則熱力圖),但又不是地形圖。 背景 先說說項目背景,本菜雞是搞故障診斷的,所以免不了用上一些統計學的知識,看過之前我的Blog的都會發現, T 2 ...

    Acceml 評論0 收藏0
  • 小企業需要數據分析嗎?

    摘要:這些功能和詞匯聽起來非常復雜,似乎對業務人員要求很高,但像網易有數這樣的敏捷可視化分析工具不僅具備這樣的能力,而且易學易用,業務人員只需簡單拖拽,就能輕松制作出兼具敏捷分析與精美展示的報告。 歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 在回答小企業是否需要數據分析這個問題之前,不妨先想想下面兩個問題: 你在電腦上建過表格嗎? 你基于表格中的數據畫過柱形圖、餅狀圖、折線圖嗎? 可...

    baishancloud 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<