python画地貌图,python画中国地图轮廓

  python画地貌图,python画中国地图轮廓

  例——绘制世界人口地图人口数据是一个json格式的文件,所以需要使用json模块对它们进行处理Pygal提供了一个适合初学者使用的地图创建工具,可以使用它来对人口数据进行可视化,以探索全球人口的分布情况。(1)导入python自带的世界地图包和国别码的包

  #导入世界地图包(python自带世界地图包)导入pygal.maps.world#导入国家代码包国家是一种字典类型的数据信息,关键是国家名称,值是来自pygal _ maps _ world.i18n导入国家(2)下载世界人口数据集并查看数据的相关信息的国家名称。

  filename= D:\ python _ test1 \ Population _ data . JSON with open(filename)as f:# Read file JSON . load()# pop _ data JSON type object pop _ data=JSON . load(f)print(pop _ data)# 国家代码: MEA , Year: 2000 , Value: 312596988.293994},{ 国家名称:中东北非(所有收入水平),国家代码: MEA , Year : 22.【重难点】:

  完成与json格式文件相关的操作。

  (1)json.dumps()将Python对象编码成JSON string==write

  (2)json.loads()将编码后的json字符串解码成Python对象(Json对象)==read

  (3)创建函数,根据国家名,找到相应的国别码

  #创建一个获取国家代码的函数,通过函数找到国家代码,提高代码利用率。DEF GET _ COUNTRY _ CODE(COUNTRY _ Name):#根据指定的国家名称,返回Pygal使用的代码的两个字母的国家代码,Name countries . items():If Name==COUNTRY _ Name:#如果找到所需的值,则返回代码#如果没有,则返回none返回None(4)可视化实例——绘制2010年世界人口地图

  def show _ Population map():filename= D:\ python _ test1 \ Population _ data . JSON with open(filename)as f:# Read file JSON . load()# pop _ data JSON type object # Read the JSON file(多键值对)pop_data=json.load(f) #创建完整的世界人口地图#创建包含人口数的字典cc_population={} 处理数据集, 在pop _ data中获取pop _ dict所需的数据 :if pop _ dict[ year ]= 2010 :country _ name=pop _ dict[ country name ]#人口数字符串到整数类型的转换分两步Population=int(float(pop _ dict[ value ])#[注意]:原始数据的格式经常不一致,因此经常出现错误。 比如不能直接强制将包含小数点的字符串转换成int类型。#【解决方法】:先把字符串转换成浮点数,再把浮点数转换成整数(转换分两步)。#函数float()将字符串转换为小数,而函数int()则丢弃小数部分并返回一个整数。#获取国家名称(调用准备好的函数)code=Get _ country _ code(country _ name)# Dictionary是另一个变量容器模型。每个键值对由冒号(:)分隔,每个键值对由逗号(,)分隔。整个字典用大括号{}括起来;#字典中的键通常是唯一的。如果它们重复,后面的键值对将覆盖前面的键值对。然而,字典值不需要是唯一的;#值可以采用任何数据类型,但键必须是不可变的类型,如字符串、数字或元组,但不能是列表,因为列表是可变的。Code: #如果国家代码不为空,添加键值对cc_population[code]=population 可视化绘制 #绘制世界人口地图#新建一个Worldmap实例(python自带图集)WM=pygal . maps . world . world()WM . title= 2010年世界人口,按国家 # add()方法接受一个标签和一个列表,其中列表包含要高亮显示的国家的国家代码#每次执行add()时, 将为指定的国家选择新的颜色,颜色和指定的标签# wm.add(北美,[CA , MX , US]) # wm.add(中美洲,[BZ , Cr , GT , HN , Ni , PA 显示在图表的左侧。 Sv]) #add对应国家的人数#add()方法接受一个标签和一个字典。字典以国家代码为键,以人口为值。Pygal根据这些数字自动给不同国家不同深浅的颜色,一般数字较大,颜色较深。wm.add(2010 ,Cc_population)#cc_population字典类型#另存为svg格式的矢量图WM . render _ to _ file( d:\ python _ test1 \ Americas . SVG )[显示结果]

  【重点难点】:

  (1)用高精度降低数据的精度。

  将人口数字字符串转换为整数类型有两个步骤。

  population=int(float(pop _ dict[ Value ]))

  由于json文件的内容是以字符型读取的,因此需要将数据转换成数值型数据进行数据处理或可视化。

  比如‘312596988.293994’精度高。可视化时,只需要整数数据。但是如果直接把这样的高精度数据转换成整数数据,往往会得到错误【问题描述】:原始数据的格式不统一,所以往往会出现错误。比如你不能直接强制一个包含小数点的字符串转换成int类型【解决方式】

  (2)调用python自带的地图模型

  我们只需要添加我们自己的实际数据,设置相关属性,并通过add()函数将我们自己的元素添加到地图中。

  #创建新实例WM=pygal . maps . world . world()(3)Add()函数语法一、接收一个标签和一个列表

  该列表包含突出显示的内容(例如,在这种情况下要突出显示的国家的国名)。

  #每次执行add()时,将为指定的国家选择一种新的颜色,该颜色和指定的标签将显示在图表的左侧。

  例如:

  wm.add(北美,[ca , mx , us])wm.add(中美洲,[bz , cr , gt , hn , ni , pa , sv])wm.add(南美,[ar , bo , br , cl , co , ec , gf , gy , pe , py , sr , uy , ve])语法二、接收一个标签和一个字典

  例如,在本例中,字典将国家代码作为键,将人口数作为值,即Pygal根据这些数字自动给不同国家着以深浅不一的颜色

  例如:

  wm.add(北美,{ca:34126000, mx:309349000,美国:113423000})(5)进阶版 1.0——将国家按照人口数量进行分组

  Def show_populationmap(): 语法和逻辑一致 #按照总人口分为三组:level1,level2,level3={},{}, { } for pop _ dict in pop _ data:If pop _ dict[ Year ]= 2010 :Country _ Name=pop _ dict[ Country Name ]#将人口数字符串转换为整数类型转换需要两步Population=int(float(pop _ dict[ value ])# Get Country Name code=Get _ Country _ code(Country _ Name)If Population 1000000:#人口超过10亿if code: # If国家代码不为空level 1 [code]=population elif人口人口超过1亿if code:level 2[code]=population else:if code:level 3[code]=population #创建地图实例new _ WM=pygal . maps . world . world()new _ WM . title= 2010年世界人口,按国家 new _ WM . add( 1000000000以上,level1) new_wm.add(介于10000000和1000000之间,level2) new_wm

  1.导入相关包。

  #Pygal样式存储在模块style中,我们从模块style中导入了来自Pygal的样式Rotatestylefrom。样式导入Rotatestyle。light colorized style # rotate style可以设置自己喜欢的颜色#LightColorizedStyle可以设置颜色高亮2。示例应用程序

  #创建新的样式实例(不要写base _ style=)new _ WM _ style=rotateStyle( # 206790 ,base _ style=light colorized style)#创建地图实例时,传递样式参数new _ WM=pygal . maps . world . world(style=new _ WM _ style)[heavy

  (1)创建RotateStyle实例时,提供一个十六进制的RGB颜色参数,RotateStyle返回一个Style对象。

  (2) LightColoredStyle调用这个类设置颜色高亮。

  第一,使用这个类的时候,不能直接控制使用的颜色。默认情况下,可以直接使用python的基色。

  [用法]:

  Wm_style=LightColorizedStyle #创建实例时,传递此参数。案例二。如果要使用自定义颜色,请控制地图颜色。

  (同时控制颜色和颜色突出显示)调用RotateStyle()类。

  WM _ style=Rotatestyle (# 336699 ,base _ style=LightColoredStyle) #创建实例时传递此参数。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: