最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python關(guān)于excel和shp的使用在matplotlib

 更新時(shí)間:2019年01月03日 11:29:54   作者:staHuri  
今天小編就為大家分享一篇關(guān)于Python關(guān)于excel和shp的使用在matplotlib,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

關(guān)于excel和shp的使用在matplotlib

  • 使用pandas 對(duì)excel進(jìn)行簡(jiǎn)單操作
  • 使用cartopy 讀取shpfile 展示到matplotlib中
  • 利用shpfile文件中的一些字段進(jìn)行一些著色處理
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : map02.py
# @Author: huifer
# @Date : 2018/6/28
import folium
import pandas as pd
import requests
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import zipfile
import cartopy.io.shapereader as shaperead
from matplotlib import cm
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
import os
dataurl = "http://image.data.cma.cn/static/doc/A/A.0012.0001/SURF_CHN_MUL_HOR_STATION.xlsx"
shpurl = "http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip"
def download_file(url):
  """
  根據(jù)url下載文件
  :param url: str
  """
  r = requests.get(url, allow_redirects=True)
  try:
    open(url.split('/')[-1], 'wb').write(r.content)
  except Exception as e:
    print(e)
def degree_conversion_decimal(x):
  """
  度分轉(zhuǎn)換成十進(jìn)制
  :param x: float
  :return: integer float
  """
  integer = int(x)
  integer = integer + (x - integer) * 1.66666667
  return integer
def unzip(zip_path, out_path):
  """
  解壓zip
  :param zip_path:str
  :param out_path: str
  :return:
  """
  zip_ref = zipfile.ZipFile(zip_path, 'r')
  zip_ref.extractall(out_path)
  zip_ref.close()
def get_record(shp, key, value):
  countries = shp.records()
  result = [country for country in countries if country.attributes[key] == value]
  countries = shp.records()
  return result
def read_excel(path):
  data = pd.read_excel(path)
  # print(data.head(10)) # 獲取幾行
  # print(data.ix[data['省份']=='浙江',:].shape[0]) # 計(jì)數(shù)工具
  # print(data.sort_values('觀測(cè)場(chǎng)拔海高度(米)',ascending=False).head(10))# 根據(jù)值排序
  # 判斷經(jīng)緯度是什么格式(度分 、 十進(jìn)制) 判斷依據(jù) %0.2f 是否大于60
  # print(data['經(jīng)度'].apply(lambda x:x-int(x)).sort_values(ascending=False).head()) # 結(jié)果判斷為度分保存
  # 坐標(biāo)處理
  data['經(jīng)度'] = data['經(jīng)度'].apply(degree_conversion_decimal)
  data['緯度'] = data['緯度'].apply(degree_conversion_decimal)
  ax = plt.axes(projection=ccrs.PlateCarree())
  ax.set_extent([70, 140, 15, 55])
  ax.stock_img()
  ax.scatter(data['經(jīng)度'], data['緯度'], s=0.3, c='g')
  # shp = shaperead.Reader('ne_10m_admin_0_countries/ne_10m_admin_0_countries.shp')
  # # 抽取函數(shù) 州:國(guó)家
  # city_list = [country for country in countries if country.attributes['ADMIN'] == 'China']
  # countries = shp.records()
  plt.savefig('test.png')
  plt.show()
def gdp(shp_path):
  """
  GDP 著色圖
  :return:
  """
  shp = shaperead.Reader(shp_path)
  cas = get_record(shp, 'SUBREGION', 'Central Asia')
  gdp = [r.attributes['GDP_MD_EST'] for r in cas]
  gdp_min = min(gdp)
  gdp_max = max(gdp)
  ax = plt.axes(projection=ccrs.PlateCarree())
  ax.set_extent([45, 90, 35, 55])
  for r in cas:
    color = cm.Greens((r.attributes['GDP_MD_EST'] - gdp_min) / (gdp_max - gdp_min))
    ax.add_geometries(r.geometry, ccrs.PlateCarree(),
             facecolor=color, edgecolor='black', linewidth=0.5)
    ax.text(r.geometry.centroid.x, r.geometry.centroid.y, r.attributes['ADMIN'],
        horizontalalignment='center',
        verticalalignment='center',
        transform=ccrs.Geodetic())
  ax.set_xticks([45, 55, 65, 75, 85], crs=ccrs.PlateCarree()) # x坐標(biāo)標(biāo)注
  ax.set_yticks([35, 45, 55], crs=ccrs.PlateCarree()) # y 坐標(biāo)標(biāo)注
  lon_formatter = LongitudeFormatter(zero_direction_label=True)
  lat_formatter = LatitudeFormatter()
  ax.xaxis.set_major_formatter(lon_formatter)
  ax.yaxis.set_major_formatter(lat_formatter)
  plt.title('GDP TEST')
  plt.savefig("gdb.png")
  plt.show()
def run_excel():
  if os.path.exists("SURF_CHN_MUL_HOR_STATION.xlsx"):
    read_excel("SURF_CHN_MUL_HOR_STATION.xlsx")
  else:
    download_file(dataurl)
    read_excel("SURF_CHN_MUL_HOR_STATION.xlsx")
def run_shp():
  if os.path.exists("ne_10m_admin_0_countries"):
    gdp("ne_10m_admin_0_countries/ne_10m_admin_0_countries.shp")
  else:
    download_file(shpurl)
    unzip('ne_10m_admin_0_countries.zip', "ne_10m_admin_0_countries")
    gdp("ne_10m_admin_0_countries/ne_10m_admin_0_countries.shp")
if __name__ == '__main__':
  # download_file(dataurl)
  # download_file(shpurl)
  # cas = get_record('SUBREGION', 'Central Asia')
  # print([r.attributes['ADMIN'] for r in cas])
  # read_excel('SURF_CHN_MUL_HOR_STATION.xlsx')
  # gdp()
  run_excel()
  run_shp()

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Python數(shù)據(jù)分析?Pandas?Series對(duì)象操作

    Python數(shù)據(jù)分析?Pandas?Series對(duì)象操作

    這篇文章主要介紹了Python數(shù)據(jù)分析之Pandas?Series對(duì)象,文章基于python的相關(guān)資料展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • Python numpy實(shí)現(xiàn)二維數(shù)組和一維數(shù)組拼接的方法

    Python numpy實(shí)現(xiàn)二維數(shù)組和一維數(shù)組拼接的方法

    今天小編就為大家分享一篇Python numpy實(shí)現(xiàn)二維數(shù)組和一維數(shù)組拼接的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python3將變量輸入的簡(jiǎn)單實(shí)例

    python3將變量輸入的簡(jiǎn)單實(shí)例

    在本篇文章里小編給大家整理的是一篇關(guān)于python3將變量輸入的簡(jiǎn)單實(shí)例內(nèi)容,有需要的朋友們可以參考下。
    2020-08-08
  • 一篇文章詳細(xì)了解pycharm的安裝及配置

    一篇文章詳細(xì)了解pycharm的安裝及配置

    這篇文章主要給大家pycharm安裝及配置的相關(guān)資料,pycharm是編輯python很好使用的工具,文中通過圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用pycharm具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-12-12
  • Python的詞法分析與語(yǔ)法分析

    Python的詞法分析與語(yǔ)法分析

    這篇文章主要介紹了Python的詞法分析(Lexical Analysis)與 語(yǔ)法分析(Syntactic Analysis),需要的朋友可以參考下
    2013-05-05
  • python解析mdf或mf4文件利器之a(chǎn)sammdf用法

    python解析mdf或mf4文件利器之a(chǎn)sammdf用法

    這篇文章主要介紹了python解析mdf或mf4文件利器之a(chǎn)sammdf用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python文件夾與文件的操作實(shí)現(xiàn)代碼

    Python文件夾與文件的操作實(shí)現(xiàn)代碼

    最近在寫的程序頻繁地與文件操作打交道,這塊比較弱,還好在百度上找到一篇不錯(cuò)的文章,這是原文傳送門,我對(duì)原文稍做了些改動(dòng)
    2014-07-07
  • 全網(wǎng)非常詳細(xì)的pytest配置文件

    全網(wǎng)非常詳細(xì)的pytest配置文件

    本文主要介紹了全網(wǎng)非常詳細(xì)的pytest配置文件,pytest的主配置文件,可以改變pytest的默認(rèn)行為,有很多可配置的選項(xiàng),感興趣的可以了解一下
    2022-07-07
  • Python標(biāo)準(zhǔn)庫(kù)json模塊和pickle模塊使用詳解

    Python標(biāo)準(zhǔn)庫(kù)json模塊和pickle模塊使用詳解

    這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)json模塊和pickle模塊使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 淺談python中set使用

    淺談python中set使用

    下面小編就為大家?guī)硪黄獪\談python中set使用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06

最新評(píng)論

嘉义市| 巫溪县| 永福县| 青浦区| 万载县| 游戏| 安宁市| 兰西县| 夹江县| 仁化县| 丹巴县| 武乡县| 宁德市| 丹凤县| 洮南市| 宜州市| 怀柔区| 花莲县| 湖北省| 阳东县| 德钦县| 大荔县| 沙田区| 类乌齐县| 郎溪县| 富锦市| 嫩江县| 杭锦后旗| 大同市| 阜新| 庄河市| 贵定县| 璧山县| 凤庆县| 菏泽市| 章丘市| 延吉市| 曲靖市| 和林格尔县| 南靖县| 闽侯县|