国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python繪制中國(guó)地圖

這篇具有很好參考價(jià)值的文章主要介紹了Python繪制中國(guó)地圖。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?1. 導(dǎo)入庫
import cartopy
import numpy as np
import pandas as pd
import proplot as pplt
import geopandas as gpd
import matplotlib.pyplot as plt
from proplot import rc
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.path as mpath
import cmaps
seis = cmaps.GMT_seis

# 導(dǎo)出指北針的庫
import gma
import gma.extend.mapplottools as mpt
import gma.extend.arrayenhancement as aec

# 導(dǎo)入自定義色帶
from colormaps import parula

rc["font.family"] = "TeX Gyre Schola"
rc['tick.labelsize'] = 10
rc["axes.labelsize"] = 12
rc["axes.labelweight"] = "light"
rc["tick.labelweight"] = "light"

2. 導(dǎo)入數(shù)據(jù)

# 加載數(shù)據(jù)
import geopandas as gpd
file = r".\China map\中國(guó)省級(jí)地圖GS(2019)1719號(hào).geojson"
nine = r".\China map\九段線GS(2019)1719號(hào).geojson"
china_main = gpd.read_file(file)
china_nine = gpd.read_file(nine)
china_main.head()

china_shp = "./nc data/Data_ipynb/country1"

from netCDF4 import Dataset 
import xarray as xr
nc_file = r".\nc data\EC-Interim_monthly_2018.nc" 
ds = xr.open_dataset(nc_file) 
lat = ds.latitude 
lon = ds.longitude 
data = (ds['t2m'][0,::-1,:] - 273.15) # 把溫度轉(zhuǎn)換為℃

3. 南海九段線部分?jǐn)?shù)據(jù)預(yù)處理

開始繪圖之前需進(jìn)行數(shù)據(jù)選擇,即中國(guó)區(qū)域的數(shù)據(jù),特別是繪制南海小地圖的更需要,可避免一些問題(小地圖上方出現(xiàn)完整地圖)

#中國(guó)整體范圍
lon_range1=lon[(lon>=70)&(lon<=138)]
lat_range1=lat[(lat>=3)&(lat<=55)]
#南海九段線范圍
lon_range2=lon[(lon>=104)&(lon<=125)]
lat_range2=lat[(lat>=0)&(lat<=27)]

china_full = data.sel(longitude=lon_range1,latitude=lat_range1)
china_sub = data.sel(longitude=lon_range2,latitude=lat_range2)


china_full_lon = china_full.longitude.values
china_full_lat = china_full.latitude.values
china_full_data = china_full.values

china_sub_lon = china_sub.longitude.values
china_sub_lat = china_sub.latitude.values
china_sub_data = china_sub.values

levels = np.arange(-25, 25 + 1, 1)  
4. 定義掩膜方法,從全球的nc數(shù)據(jù)中,裁出中國(guó)地圖部分的數(shù)據(jù)(根據(jù)shp文件裁剪nc數(shù)據(jù))
def maskout_areas(originfig, ax, shp_path, proj=None):
    import shapefile
    import cartopy.crs as ccrs
    from matplotlib.path import Path
    #from cartopy.mpl.clip_path
    from matplotlib.patches import PathPatch
    #sf = shapefile.Reader(shp_path)
    sf = shapefile.Reader(shp_path,encoding='gbk')
    vertices = []
    codes = []
    for shape_rec in sf.shapeRecords():
        if shape_rec.record[2] == 'China':
            pts = shape_rec.shape.points
            prt = list(shape_rec.shape.parts) + [len(pts)]
            for i in range(len(prt) - 1):
                for j in range(prt[i], prt[i + 1]):
                    if proj:
                        vertices.append(proj.transform_point(pts[j][0], pts[j][1], ccrs.Geodetic()))
                    else:
                        vertices.append((pts[j][0], pts[j][1]))
                codes += [Path.MOVETO]
                codes += [Path.LINETO] * (prt[i + 1] - prt[i] - 2)
                codes += [Path.CLOSEPOLY]
            clip = Path(vertices, codes)
            clip = PathPatch(clip, transform=ax.transData)
    for contour in originfig.collections:
        contour.set_clip_path(clip)
5. 繪制填色地圖
levels = np.arange(-25, 25 + 1, 1)  

projn = ccrs.LambertConformal(central_longitude=107.5, 
                              central_latitude=36,
                              standard_parallels=(25.0, 47.0)
                            )
fig = plt.figure(figsize=(4,3.5),dpi=120,facecolor="w")
ax = fig.add_subplot(projection=projn)
# cs = data.plot.contourf(ax=ax,levels=levels,cbar_kwargs=cbar_kwargs,
#                         cmap=parula,transform=ccrs.PlateCarree(),
#                        )
#自定義colorbar 參數(shù)
cs = china_full.plot.contourf(ax=ax,levels=levels,add_colorbar=False,
                        cmap=parula,transform=ccrs.PlateCarree(),
                       )
# #basemask(ax=ax, cs=cs,shp=china_shp)
maskout_areas(originfig=cs,ax=ax,shp_path=china_shp,proj=projn)

ax.set_facecolor('#BEE8FF')
ax.spines['geo'].set_linewidth(0.5)
#ax.stock_img()
ax.set_extent([80, 130, 16, 52.5], crs=ccrs.PlateCarree())
ax.coastlines(linewidth=0.3,zorder=20)
ax.add_feature(cfeature.LAND, facecolor='white')
ax.add_feature(cfeature.LAKES.with_scale('110m'), facecolor='#BEE8FF')
#添加geopandas 讀取的地理文件
ax.add_geometries(china_main["geometry"],crs=ccrs.PlateCarree(),
                  fc="None",ec="k",linewidth=.2)
ax.add_geometries(china_nine["geometry"],crs=ccrs.PlateCarree(),
                  fc="None",ec="black",linewidth=.3)
#設(shè)置標(biāo)題
ax.set_title("Example Of China Lambert Projection")
gls = ax.gridlines(draw_labels=True, crs=ccrs.PlateCarree(), 
                   color='gray', linestyle='dashed', linewidth=0.2, 
                   y_inline=False, x_inline=False,
                   rotate_labels=0,xpadding=5,
                   xlocs=range(-180,180,10), ylocs=range(-90,90,5),
                   xlabel_style={"size":8,"weight":"bold"},
                   ylabel_style={"size":8,"weight":"bold"}
                  )
gls.top_labels= False                      
gls.right_labels=False

#添加南海小地圖
# 定位南海子圖的位置,四個(gè)數(shù)字需要調(diào)整
# 四個(gè)數(shù)字分別是(left, bottom, width, height):
# 子圖左下角水平方向相對(duì)位置,左下角垂直方向相對(duì)位置,子圖寬,子圖高
ax2 = fig.add_axes([0.74, 0.24, 0.1, 0.25], projection = projn)
ax2.set_extent([104.5, 124, 0, 26],crs=ccrs.PlateCarree())
#ax2.set(xlim=(104.5, 125),ylim=(0, 26))
ax2.set_facecolor('#BEE8FF')
ax2.spines['geo'].set_linewidth(0.4)

cs2 = china_sub.plot.contourf(ax=ax2,levels=levels,add_colorbar=False,
                        cmap=parula,transform=ccrs.PlateCarree(),
                       )
#basemask(ax=ax2, cs=cs2,shp=china_shp)
maskout_areas(originfig=cs2,ax=ax2,shp_path=china_shp,proj=projn)
ax2.set_title("")

# 設(shè)置網(wǎng)格點(diǎn)
lb=ax2.gridlines(draw_labels=False,x_inline=False, y_inline=False,
                 linewidth=0.1, color='gray', alpha=0.8, 
                 linestyle='--' )
ax2.add_geometries(china_main["geometry"],crs=ccrs.PlateCarree(),
                  fc="None",ec="k",linewidth=.3)
ax2.add_geometries(china_nine["geometry"],crs=ccrs.PlateCarree(),
                  fc="None",ec="black",linewidth=.5)
ax2.add_feature(cfeature.LAND, facecolor='w')

## n.1 添加指北針
mpt.AddCompass(ax, LOC = (0.07, 0.86), SCA = 0.04, FontSize = 8)
## n.2 添加比例尺
mpt.AddScaleBar(ax, LOC = (0.2, 0.05), SCA = 0.12, FontSize = 6, 
                UnitPad = 0.2, BarWidth = 0.6)

cbar = fig.colorbar(cs,ax=ax,orientation='horizontal',
                    shrink=0.65,aspect=25,pad=.08)
cbar.ax.tick_params(labelsize=7.5,direction="in")
cbar.ax.tick_params(which="minor",direction="in")
#cbar.ax.xaxis.set_ticks_position('top')
cbar.set_label("Temperature (℃)",fontsize=9)
#cbar.ax.set_title("Sea Surface Temperature(m)",fontsize=9)
cbar.outline.set_linewidth(.4)
#plt.tight_layout()

python繪制中國(guó)地圖,python,開發(fā)語言

?文章來源地址http://www.zghlxwxcb.cn/news/detail-736346.html

到了這里,關(guān)于Python繪制中國(guó)地圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Android Framework系列】第13章 SVG矢量圖形自定義組件(繪制中國(guó)地圖)

    【Android Framework系列】第13章 SVG矢量圖形自定義組件(繪制中國(guó)地圖)

    本章節(jié)我們來了解下什么是 SVG 矢量圖形,怎么通過 SVG 實(shí)現(xiàn)圖形的繪制,通過 SVG 實(shí)現(xiàn)不規(guī)則的自定義控件,項(xiàng)目實(shí)現(xiàn)一個(gè)中國(guó)地圖,實(shí)現(xiàn)每個(gè)省都能夠點(diǎn)擊,項(xiàng)目地址在文末請(qǐng)自取。 SVG 指可伸縮矢量圖形 (Scalable Vector Graphics) SVG 用來定義用于網(wǎng)絡(luò)的基于矢量的圖形 SVG 使用

    2024年02月10日
    瀏覽(25)
  • 手把手教 Vue3.2+Vite+Echarts 5 繪制3D線條效果中國(guó)地圖

    手把手教 Vue3.2+Vite+Echarts 5 繪制3D線條效果中國(guó)地圖

    本篇文章介紹 Vue3.2+Vite 項(xiàng)目?jī)?nèi)使用 Echarts 5 繪制中國(guó)地圖,標(biāo)記分布點(diǎn)!之前沒有接觸過 Echarts 的,可以先去官方示例看看,里面圖形特別齊全。但是官方文檔看著費(fèi)勁的,太多了根本記不住,所以自己做個(gè)總結(jié),下次就可以直接使用了,不用做重復(fù)無用功。 1、下載并引入

    2024年02月04日
    瀏覽(30)
  • Android-高級(jí)-UI-進(jìn)階之路-(七)-SVG-基礎(chǔ)使用-+-繪制中國(guó)地圖,Android面試中常問的MMAP到底是啥東東

    Android-高級(jí)-UI-進(jìn)階之路-(七)-SVG-基礎(chǔ)使用-+-繪制中國(guó)地圖,Android面試中常問的MMAP到底是啥東東

    iv.setImageDrawable(animatedVectorDrawable) val animatable = iv.drawable as Animatable animatable.start() } } 輸入搜索動(dòng)畫 利用在線繪制 SVG 圖標(biāo)網(wǎng)站 制作搜索圖標(biāo) 可以自己隨意搗鼓繪制,繪制好了之后點(diǎn)擊視圖-源代碼,將 SVG 代碼復(fù)制出來保存成 search_svg.xml 在線轉(zhuǎn)換 svg2vector 點(diǎn)擊空白或者直接將

    2024年04月25日
    瀏覽(28)
  • html Antv L7 + mapbox 實(shí)現(xiàn)3D地圖 3D中國(guó)地圖 不限于中國(guó)地圖

    html Antv L7 + mapbox 實(shí)現(xiàn)3D地圖 3D中國(guó)地圖 不限于中國(guó)地圖

    echarts的3D地圖實(shí)在太丑了,還一堆bug 使用阿里的Antv可視化庫L7,實(shí)現(xiàn)3D地圖,底圖是mapbox 參考示例:https://l7.antv.antgroup.com/zh/examples/polygon/3d#floatMap 如果不需要底圖樣式,可把Scene的style設(shè)置為blank 直接上代碼了,vue的就不說了,項(xiàng)目是html的 mapbox依賴 L7依賴 body元素 實(shí)現(xiàn)

    2024年02月14日
    瀏覽(53)
  • Echarts中國(guó)地圖與世界地圖實(shí)戰(zhàn)

    Echarts中國(guó)地圖與世界地圖實(shí)戰(zhàn)

    Echarts中中國(guó)地圖與世界地圖實(shí)戰(zhàn),完整代碼。 其中 china.js 與 world.js 兩個(gè)文件已通過CDN的方法給出,而 echarts.js 大家可以自行去官網(wǎng)下載。 echarts.js是百度團(tuán)隊(duì)推出的一款用于圖表可視化的插件,用于以圖表的形式展現(xiàn)數(shù)據(jù),功能強(qiáng)大,上手簡(jiǎn)單。 版本區(qū)別: 1.完全版:ec

    2024年02月03日
    瀏覽(36)
  • echarts實(shí)現(xiàn)中國(guó)地圖記錄篇之2D,3D地圖

    echarts實(shí)現(xiàn)中國(guó)地圖記錄篇之2D,3D地圖

    工具: 實(shí)現(xiàn)2D平面地圖需要用到的包為:echarts 實(shí)現(xiàn)3D地圖需要用到的包為:echarts,echarts-gl 版本 —— echarts5.0+和5.0以下版本的差異: echarts 5.0以下的版本,做中國(guó)地圖,推薦使用\\\"echarts\\\": \\\"^4.9.0\\\"版本,安裝、引入和使用方式,如下: Echarts官方在5+版本中移除了echarts/map/js/china.

    2023年04月08日
    瀏覽(33)
  • SVG實(shí)現(xiàn)中國(guó)地圖

    1.SVG是什么? svg 是Scalable Vector Graphics的縮寫,指可伸縮矢量圖形,可以用于繪制復(fù)雜不規(guī)則的控件。 svg繪制原理,就是利用了Path繪制圖形。 1)svg利用xml定義圖形。在xml中就包晗了繪制Path所需的數(shù)據(jù)。 2)加載xml中的PathData,轉(zhuǎn)換成Path對(duì)象。 3)利用Canvas,把Path繪制在屏幕

    2024年02月04日
    瀏覽(29)
  • 大屏echarts示例------中國(guó)地圖

    大屏echarts示例------中國(guó)地圖

    最近做了幾個(gè)大屏,有很多echarts圖表,挑重要的記錄一下: 1. 中國(guó)地圖 首先要找一個(gè)json文件,包含中國(guó)地區(qū)內(nèi)所有地方的經(jīng)緯度和名稱等,初始化地圖的時(shí)候需要 這里的city就是我的json文件。在上方引入即可 這里我把它放在和大屏index同目錄下了,注意引入時(shí)的路徑 然后

    2024年02月03日
    瀏覽(21)
  • ECharts 圖表簡(jiǎn)單示例,中國(guó)地圖
  • Flutter中實(shí)現(xiàn)中國(guó)省份地圖

    Flutter中實(shí)現(xiàn)中國(guó)省份地圖

    效果展示(這里只展示局部,完全展示違規(guī)): 可以點(diǎn)擊省份改變顏色,更多功能可以自行拓展。 注:非完整中國(guó)地圖?。?! 本文用于記錄在Flutter項(xiàng)目中安卓端實(shí)現(xiàn)中國(guó)地圖,因?yàn)閷?shí)現(xiàn)過程是通過Flutter調(diào)用安卓原生代碼實(shí)現(xiàn),所以IOS端不可用,通過本文你還可以學(xué)會(huì)如何通過

    2024年01月25日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包