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

資訊專欄INFORMATION COLUMN

python大數(shù)據(jù)可視化制作全球人口地形圖

89542767 / 833人閱讀

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


  序言


  信息來(lái)源:population_data.json,


  先看看數(shù)據(jù)信息長(zhǎng)什么樣


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


  '''這一個(gè)文檔實(shí)際上是1個(gè)比較長(zhǎng)的Python目錄,在其中各個(gè)原素是一個(gè)包括4個(gè)鍵的詞典:


  國(guó)家名、所在國(guó)碼、年代及其表明人口總數(shù)數(shù)值。


  大家只關(guān)注各個(gè)國(guó)家2010年人口總數(shù),所以我們最先撰寫1個(gè)打印出這些數(shù)據(jù)的流程:'''


  importjson
  #將數(shù)據(jù)加載到了一個(gè)頁(yè)面上
  filename='population_data.json'
  withopen(filename)asf:
  pop_data=json.load(f)
  #打印出各個(gè)國(guó)家2010年人口總數(shù)
  forpop_dicinpop_data:
  ifpop_dic["Year"]=='2010':
  country_name=pop_dic['CountryName']
  population=int(float(pop_dic['Value']))#population_data.json中的每一個(gè)鍵合值全是字符串?dāng)?shù)組。為處理這種人口統(tǒng)計(jì),我們應(yīng)該將表明人口總數(shù)的字符串?dāng)?shù)組轉(zhuǎn)化為數(shù)字值,因此大家應(yīng)用函數(shù)公式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


  獲得兩個(gè)字母的所在國(guó)碼


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


  population_data.json其中包含是指三個(gè)英文字母的所在國(guó)碼,但Pygal應(yīng)用兩個(gè)字母的所在國(guó)碼。我們應(yīng)該想盡辦法依據(jù)國(guó)家名獲得兩個(gè)字母的所在國(guó)碼。


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


  詞典COUNTRIES蘊(yùn)含的鍵合值分別是兩個(gè)字母的所在國(guó)碼和國(guó)家名。


  要檢查這種所在國(guó)碼,可以從控制模塊i18n中導(dǎo)進(jìn)這一個(gè)詞典,直接打印其鍵合值:'''


  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


  為獲取國(guó)別碼,我們將編寫一個(gè)函數(shù),它在COUNTRIES中查找并返回國(guó)別碼。


  我們將這個(gè)函數(shù)放在一個(gè)名為country_codes的模塊中,以便能夠在可視化程序中導(dǎo)入它:


  from pygal_maps_world.i18n import COUNTRIES
  def get_country_code(country_name):
  #根據(jù)指定的國(guó)家,返回Pygal使用的兩個(gè)字母的國(guó)別碼
  for code,name in COUNTRIES.items():
  if name==country_name:
  return code
  #如果沒有找到指定的國(guó)家,就返回None
  return None
  #打印每個(gè)國(guó)家2010年的人口數(shù)量
  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中的每個(gè)鍵和值都是字符串。為處理這些人口數(shù)據(jù),我們需要將表示人口數(shù)量的字符串轉(zhuǎn)換為數(shù)字值,為此我們使用函數(shù)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


  導(dǎo)致顯示錯(cuò)誤消息的原因有兩個(gè)。首先,并非所有人口數(shù)量對(duì)應(yīng)的都是國(guó)家,有些人口數(shù)量對(duì)應(yīng)的是地區(qū)(阿拉伯世界)和經(jīng)濟(jì)類群(所有收入水平)。


  其次,有些統(tǒng)計(jì)數(shù)據(jù)使用了不同的完整國(guó)家名(如Yemen,Rep.,而不是Yemen)。當(dāng)前,我們將忽略導(dǎo)致錯(cuò)誤的數(shù)據(jù),看看根據(jù)成功恢復(fù)了的數(shù)據(jù)制作出的地圖是什么樣的。


  制作世界地圖


  import pygal_maps_world.maps#創(chuàng)建了一個(gè)Worldmap實(shí)例,并設(shè)置了該地圖的的title屬性
  wm=pygal_maps_world.maps.World()
  wm.title='North,Central,and South America'
  '''
  方法add(),它接受一個(gè)標(biāo)簽和一個(gè)列表,其中后者包含我們要突出的國(guó)家的國(guó)別碼。每次調(diào)用add()都將為指定的國(guó)家
  選擇一種新顏色,并在圖表左邊顯示該顏色和指定的標(biāo)簽。我們要以同一種顏色顯示整個(gè)北美地區(qū),因此第一次調(diào)用add()
  時(shí),在傳遞給它的列表中包含'ca'、'mx'和'us',以同時(shí)突出加拿大、墨西哥和美國(guó)。接下來(lái),對(duì)中美和南美國(guó)家做同樣
  的處理。
  '''
  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()創(chuàng)建一個(gè)包含該圖表的.svg文件,你可以在瀏覽器中打開它。輸出是一幅以不同顏色突出北美、


  中美和南美的地圖


  '''


  wm.render_to_file('americas.svg')


  繪制完整的世界人口地圖


  '''要呈現(xiàn)其他國(guó)家的人口數(shù)量,需要將前面處理的數(shù)據(jù)轉(zhuǎn)換為Pygal要求的字典格式:鍵為兩個(gè)字母的國(guó)別碼,值為人口數(shù)量。


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


  import json
  #將數(shù)據(jù)加載到一個(gè)列表中
  filename='population_data.json'
  with open(filename)as f:
  pop_data=json.load(f)
  def get_country_code(country_name):
  #根據(jù)指定的國(guó)家,返回Pygal使用的兩個(gè)字母的國(guó)別碼
  for code,name in COUNTRIES.items():
  if name==country_name:
  return code
  #如果沒有找到指定的國(guó)家,就返回None
  return None
  #創(chuàng)建一個(gè)包含人口數(shù)量是字典
  cc_populations={}
  #打印每個(gè)國(guó)家2010年的人口數(shù)量
  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中的每個(gè)鍵和值都是字符串。為處理這些人口數(shù)據(jù),我們需要將表示人口數(shù)量的字符串轉(zhuǎn)換為數(shù)字值,為此我們使用函數(shù)int():
  code=get_country_code(country_name)
  if code:
  cc_populations[code]=population
  import pygal_maps_world.maps#創(chuàng)建了一個(gè)Worldmap實(shí)例,并設(shè)置了該地圖的的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')
  根據(jù)人口數(shù)量將國(guó)家分組
  import json
  #將數(shù)據(jù)加載到一個(gè)列表中
  filename='population_data.json'
  with open(filename)as f:
  pop_data=json.load(f)
  def get_country_code(country_name):
  #根據(jù)指定的國(guó)家,返回Pygal使用的兩個(gè)字母的國(guó)別碼
  for code,name in COUNTRIES.items():
  if name==country_name:
  return code
  #如果沒有找到指定的國(guó)家,就返回None
  return None
  #創(chuàng)建一個(gè)包含人口數(shù)量是字典
  cc_populations={}
  #打印每個(gè)國(guó)家2010年的人口數(shù)量
  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中的每個(gè)鍵和值都是字符串。為處理這些人口數(shù)據(jù),我們需要將表示人口數(shù)量的字符串轉(zhuǎn)換為數(shù)字值,為此我們使用函數(shù)int():
  code=get_country_code(country_name)
  if code:
  cc_populations[code]=population
  ###根據(jù)人口數(shù)量將國(guó)家分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#創(chuàng)建了一個(gè)Worldmap實(shí)例,并設(shè)置了該地圖的的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

       依據(jù)Pygal設(shè)定游戲地圖的款式


  在這個(gè)圖中,依據(jù)人口總數(shù)將我國(guó)分類雖然比較合理有效,但默認(rèn)顏色調(diào)整好難看。比如,在這兒,Pygal選了鮮亮的粉色和綠色基本色。


  下邊應(yīng)用Pygal款式設(shè)定命令來(lái)調(diào)節(jié)色調(diào)。大家也讓Pygal應(yīng)用一類基本色,但將特定該基本色,然后讓3個(gè)分類顏色區(qū)別更高


  ###依據(jù)Pygal設(shè)定游戲地圖的款式


  '''


  在這個(gè)圖中,依據(jù)人口總數(shù)將我國(guó)分類雖然比較合理有效,但默認(rèn)顏色調(diào)整好難看。比如,在這兒,Pygal選了鮮亮的粉紅色


  的綠色基本色。下邊應(yīng)用Pygal款式設(shè)定命令來(lái)調(diào)節(jié)色調(diào)。大家也讓Pygal應(yīng)用一類基本色,但將特定該基本色,然后讓3個(gè)分類


  顏色區(qū)別更高


  '''
  ###依據(jù)人口總數(shù)將我國(guó)分類
  importjson
  #將數(shù)據(jù)加載到了一個(gè)頁(yè)面上
  filename='population_data.json'
  with open(filename)as f:
  pop_data=json.load(f)
  def get_country_code(country_name):
  #根據(jù)指定的國(guó)家,返回Pygal使用的兩個(gè)字母的國(guó)別碼
  for code,name in COUNTRIES.items():
  if name==country_name:
  return code
  #如果沒有找到指定的國(guó)家,就返回None
  return None
  #創(chuàng)建一個(gè)包含人口數(shù)量是字典
  cc_populations={}
  #打印每個(gè)國(guó)家2010年的人口數(shù)量
  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中的每個(gè)鍵和值都是字符串。為處理這些人口數(shù)據(jù),我們需要將表示人口數(shù)量的字符串轉(zhuǎn)換為數(shù)字值,為此我們使用函數(shù)int():
  code=get_country_code(country_name)
  if code:
  cc_populations[code]=population
  ###根據(jù)人口數(shù)量將國(guó)家分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#創(chuàng)建了一個(gè)Worldmap實(shí)例,并設(shè)置了該地圖的的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')

  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/129086.html

相關(guān)文章

  • 常用的數(shù)據(jù)視化工具

    摘要:俗話說(shuō),不會(huì)使用工具來(lái)完成任務(wù)的都是進(jìn)化不完全的表現(xiàn),大數(shù)據(jù)時(shí)代,可視化已經(jīng)深深鉆進(jìn)我們的生活,使用可視化工具也變的相當(dāng)普遍,今天我們來(lái)總結(jié)下當(dāng)下可視化工具都有哪些。是一個(gè)地圖庫(kù),主要面向數(shù)據(jù)可視化用戶。 俗話說(shuō),不會(huì)使用工具來(lái)完成任務(wù)的都是進(jìn)化不完全的表現(xiàn),大數(shù)據(jù)時(shí)代,可視化已經(jīng)深深鉆進(jìn)我們的生活,使用可視化工具也變的相當(dāng)普遍,今天我們來(lái)總結(jié)下當(dāng)下可視化工具都有哪些。 showImg...

    philadelphia 評(píng)論0 收藏0
  • ArcGIS水文分析實(shí)戰(zhàn)教程(10)河流平均比降計(jì)算

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

    zhangrxiang 評(píng)論0 收藏0
  • 爬取淘寶上4000條月餅數(shù)據(jù)制作了一個(gè)酷炫的視化屏!

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

    cod7ce 評(píng)論0 收藏0
  • ?機(jī)器學(xué)習(xí)?中Python實(shí)現(xiàn)視化三維熱力圖(形圖

    由于項(xiàng)目的需要,一直苦于將多層數(shù)據(jù)集累加起來(lái)做成一個(gè)呈堆積狀的三維圖,有點(diǎn)類似于地形圖(實(shí)則熱力圖),但又不是地形圖。 背景 先說(shuō)說(shuō)項(xiàng)目背景,本菜雞是搞故障診斷的,所以免不了用上一些統(tǒng)計(jì)學(xué)的知識(shí),看過(guò)之前我的Blog的都會(huì)發(fā)現(xiàn), T 2 ...

    Acceml 評(píng)論0 收藏0
  • 小企業(yè)需要數(shù)據(jù)分析嗎?

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

    baishancloud 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<