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

Python繪制土地利用和土地覆蓋類型圖示例詳解

 更新時(shí)間:2025年01月06日 09:01:07   作者:TechSynapse  
本文介紹了如何使用Python繪制土地利用和土地覆蓋類型圖,并提供了詳細(xì)的代碼示例,通過(guò)安裝所需的庫(kù),準(zhǔn)備地理數(shù)據(jù),使用geopandas和matplotlib等庫(kù),可以繪制出土地利用和覆蓋類型圖,感興趣的朋友一起看看吧

土地利用和土地覆蓋是環(huán)境科學(xué)和城市規(guī)劃中的重要概念,它們能夠幫助本文理解人與自然的關(guān)系,促進(jìn)可持續(xù)發(fā)展。隨著城市化進(jìn)程的加快,科學(xué)地監(jiān)測(cè)和管理土地資源顯得尤為重要。Python作為一種強(qiáng)大的編程語(yǔ)言,憑借其豐富的數(shù)據(jù)分析庫(kù),廣泛應(yīng)用于這項(xiàng)工作中。本文將詳細(xì)介紹如何使用Python繪制土地利用和土地覆蓋類型圖,并提供詳細(xì)的代碼示例。

一、所需庫(kù)的安裝

首先,本文需要安裝繪制土地利用和土地覆蓋類型圖所需的Python庫(kù)。這些庫(kù)包括pandas、matplotlib、geopandas等。可以使用以下命令進(jìn)行安裝:

pip install pandas geopandas matplotlib

二、數(shù)據(jù)準(zhǔn)備

為了繪制土地利用和土地覆蓋類型圖,本文需要準(zhǔn)備相應(yīng)的地理數(shù)據(jù)。這些數(shù)據(jù)通常以GeoJSON、Shapefile等格式存儲(chǔ)。在本文的示例中,本文將使用GeoJSON格式的數(shù)據(jù)。

假設(shè)本文有一個(gè)名為land_use.geojson的文件,包含了土地利用類型的數(shù)據(jù)。這個(gè)文件可以通過(guò)各種地理數(shù)據(jù)平臺(tái)或政府機(jī)構(gòu)獲取。

三、繪制土地利用和土地覆蓋類型圖

以下是一個(gè)完整的代碼示例,展示了如何使用Python繪制土地利用和土地覆蓋類型圖:

import geopandas as gpd
import matplotlib.pyplot as plt
# 讀取地理數(shù)據(jù),可以使用GeoJSON、Shapefile等格式
data = gpd.read_file('land_use.geojson')
# 確認(rèn)數(shù)據(jù)加載成功,打印前5行
print(data.head())
# 設(shè)置繪圖樣式
fig, ax = plt.subplots(1, 1, figsize=(12, 10))
# 繪制土地利用和覆蓋類型圖
data.plot(column='land_use_type', ax=ax, legend=True, 
          legend_kwds={'label': "Land Use Types", 'orientation': "horizontal"},
          cmap='Set3')
# 添加圖表標(biāo)題
ax.set_title('Land Use and Land Cover Types Map', fontsize=15)
ax.set_xlabel('Longitude', fontsize=12)
ax.set_ylabel('Latitude', fontsize=12)
# 顯示地圖
plt.show()

四、代碼解釋

導(dǎo)入庫(kù)

import geopandas as gpd
import matplotlib.pyplot as plt

本文導(dǎo)入了geopandas和matplotlib庫(kù)。geopandas用于讀取和處理地理數(shù)據(jù),matplotlib用于繪圖。

讀取地理數(shù)據(jù)

data = gpd.read_file('land_use.geojson')

使用geopandas的read_file方法讀取GeoJSON格式的地理數(shù)據(jù)文件。

確認(rèn)數(shù)據(jù)加載成功

print(data.head())

打印數(shù)據(jù)的前5行,以確保數(shù)據(jù)加載成功并了解數(shù)據(jù)的基本結(jié)構(gòu)。

設(shè)置繪圖樣式

fig, ax = plt.subplots(1, 1, figsize=(12, 10))

使用matplotlib的subplots方法創(chuàng)建一個(gè)繪圖對(duì)象和一個(gè)坐標(biāo)軸對(duì)象,并設(shè)置圖像的大小。

繪制土地利用和覆蓋類型圖

data.plot(column='land_use_type', ax=ax, legend=True, 
          legend_kwds={'label': "Land Use Types", 'orientation': "horizontal"},
          cmap='Set3')

使用geopandas的plot方法將數(shù)據(jù)按照不同的土地利用類型繪制在地圖上。column參數(shù)指定要繪制的列名,ax參數(shù)指定坐標(biāo)軸對(duì)象,legend參數(shù)表示是否顯示圖例,legend_kwds參數(shù)用于設(shè)置圖例的樣式,cmap參數(shù)用于設(shè)置顏色映射。

添加圖表標(biāo)題和坐標(biāo)軸標(biāo)簽

ax.set_title('Land Use and Land Cover Types Map', fontsize=15)
ax.set_xlabel('Longitude', fontsize=12)
ax.set_ylabel('Latitude', fontsize=12)

使用set_title方法設(shè)置圖表標(biāo)題,使用set_xlabelset_ylabel方法設(shè)置坐標(biāo)軸標(biāo)簽。

顯示地圖

plt.show()

使用matplotlib的show方法顯示地圖。

五、其他可視化形式

除了繪制土地利用和土地覆蓋類型圖外,本文還可以使用Python繪制其他類型的圖表,以更全面地展示土地利用和土地覆蓋的數(shù)據(jù)。

1. 餅狀圖

餅狀圖是一種用于顯示各部分相對(duì)于整體的比例關(guān)系的圖形。以下是一個(gè)使用matplotlib繪制土地利用類型餅狀圖的示例:

import pandas as pd
import matplotlib.pyplot as plt
# 示例數(shù)據(jù)集
data = {
    '土地利用類型': ['森林', '農(nóng)田', '城市', '水體', '草地'],
    '面積(平方公里)': [150, 320, 100, 50, 80]
}
df = pd.DataFrame(data)
df['面積比例'] = df['面積(平方公里)'] / df['面積(平方公里)'].sum()
# 繪制餅狀圖
plt.figure(figsize=(8, 6))
plt.pie(df['面積比例'], labels=df['土地利用類型'], autopct='%.1f%%', startangle=140)
plt.title('土地利用類型分布')
plt.axis('equal')  # 使餅圖為圓形
plt.show()

2. 柱狀圖

柱狀圖是一種用于展示不同類別數(shù)據(jù)的分布情況的圖形。以下是一個(gè)使用matplotlib繪制土地覆蓋類型柱狀圖的示例:

import pandas as pd
import matplotlib.pyplot as plt
# 加載土地覆蓋數(shù)據(jù)
data = pd.read_csv('land_cover_data.csv')
# 統(tǒng)計(jì)不同地表覆蓋類型的數(shù)量
cover_types = data['cover_type'].value_counts()
# 繪制柱狀圖
plt.figure(figsize=(10, 6))
plt.bar(cover_types.index, cover_types.values)
plt.title('Land Cover Distribution')
plt.xlabel('Cover Type')
plt.ylabel('Count')
plt.show()

3. ?;鶊D

?;鶊D是一種用于展示流動(dòng)或轉(zhuǎn)換過(guò)程的圖形。以下是一個(gè)使用plotly繪制土地利用轉(zhuǎn)移?;鶊D的示例:

以下是將?;鶊D代碼補(bǔ)充完整的示例:

import plotly.graph_objects as go
# 定義轉(zhuǎn)移矩陣
transfer_matrix_2014_to_2024= [
    [383.69, 3.51, 0.02, 7.19, 4.27, 0.24],
    [8.66, 166.07, 1.44, 63.02, 17.73, 39.24],
    [0, 0.88, 3.73, 0.09, 0.01, 0.23],
    [12.76, 29.42, 1.1, 79.35, 11.97, 25.42],
    [0.27, 3.73, 0.03, 1.64, 1.72, 0.94],
    [2.14, 4.39, 0.05, 11.69, 1.15, 2.75]
]
# 類別名稱
categories = ["林地", "建設(shè)用地", "水域", "耕地", "未利用地", "草地"]
# 創(chuàng)建節(jié)點(diǎn)(起始節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn))
labels = []
labels.extend([f"2014_{category}" for category in categories])
labels.extend([f"2024_{category}" for category in categories])
# 創(chuàng)建 source 和 target
source = []
target = []
value = []
# 2014 到 2024 的轉(zhuǎn)移數(shù)據(jù)
for i in range(len(categories)):
    for j in range(len(categories)):
        if transfer_matrix_2014_to_2024[i][j] > 0:
            source.append(i)  # 從 2014 年的類別
            target.append(len(categories) + j)  # 到 2024 年的類別
            value.append(transfer_matrix_2014_to_2024[i][j])
# 定義顏色
colors = [
    "#228B22",  # 林地 (深綠色)
    "#D2691E",  # 建設(shè)用地 (深橙色)
    "#1E90FF",  # 水域 (亮藍(lán)色)
    "#FFD700",  # 耕地 (金色)
    "#A9A9A9",  # 未利用地 (暗灰色)
    "#8FBC8F"   # 草地 (青綠色)
]
# 為每個(gè)節(jié)點(diǎn)分配顏色(前一半是2014年的,后一半是2024年的,顏色相同)
node_colors = colors * 2
# 創(chuàng)建?;鶊D
fig = go.Figure(data=[go.Sankey(
    node=dict(
        pad=15,  # 節(jié)點(diǎn)之間的間距
        thickness=20,
        line=dict(color="black", width=0.5),
        label=labels,
        color=node_colors
    ),
    link=dict(
        source=source,
        target=target,
        value=value
    ))])
# 設(shè)置布局
fig.update_layout(title_text="2014年至2024年土地利用類型轉(zhuǎn)移?;鶊D", font_size=10)
# 顯示圖表
fig.show()

在這段代碼中,本文使用了plotly.graph_objects庫(kù)來(lái)創(chuàng)建一個(gè)?;鶊D。本文定義了轉(zhuǎn)移矩陣transfer_matrix_2014_to_2024,它表示從2014年到2024年各種土地利用類型之間的轉(zhuǎn)移量。然后,本文創(chuàng)建了節(jié)點(diǎn)標(biāo)簽labels,sourcetarget列表來(lái)存儲(chǔ)鏈接的起始和終止節(jié)點(diǎn),以及value列表來(lái)存儲(chǔ)鏈接的值。

本文還為每種土地利用類型定義了顏色,并將這些顏色分配給節(jié)點(diǎn)。最后,本文使用go.Sankey函數(shù)創(chuàng)建?;鶊D,并通過(guò)fig.update_layout設(shè)置圖表的布局和標(biāo)題。最后,使用fig.show()顯示圖表。

請(qǐng)確保您已經(jīng)安裝了plotly庫(kù),可以使用以下命令進(jìn)行安裝:

pip install plotly

運(yùn)行上述代碼后,您將看到一個(gè)交互式的桑基圖,展示了從2014年到2024年各種土地利用類型之間的轉(zhuǎn)移情況。

六、總結(jié)

在數(shù)據(jù)可視化的領(lǐng)域中,Python憑借其強(qiáng)大的庫(kù)和工具集,成為了處理和分析地理空間數(shù)據(jù)的首選語(yǔ)言之一。特別是當(dāng)本文需要繪制土地利用和土地覆蓋類型圖時(shí),Python提供了諸如Plotly、Matplotlib、Geopandas等豐富的庫(kù)來(lái)幫助本文高效地完成這一任務(wù)。本文重點(diǎn)介紹了如何使用Plotly庫(kù)來(lái)繪制土地利用轉(zhuǎn)移桑基圖。桑基圖是一種專門(mén)用于展示流動(dòng)或轉(zhuǎn)換過(guò)程的圖形,非常適合用來(lái)表示土地利用類型在不同時(shí)間段之間的轉(zhuǎn)移情況。通過(guò)Python和Plotly庫(kù),本文可以輕松創(chuàng)建土地利用轉(zhuǎn)移桑基圖,以直觀的方式展示土地利用類型在不同時(shí)間段之間的轉(zhuǎn)移情況。這種方法不僅提高了數(shù)據(jù)可視化的效率,還增強(qiáng)了圖表的可讀性和交互性。無(wú)論是科研人員、數(shù)據(jù)分析師還是地理空間信息專業(yè)人士,都可以通過(guò)掌握這種方法來(lái)更好地理解和分析土地利用和土地覆蓋變化的數(shù)據(jù)。

到此這篇關(guān)于Python繪制土地利用和土地覆蓋類型圖示例詳解的文章就介紹到這了,更多相關(guān)Python土地利用和土地覆蓋類型圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解讀Python腳本的常見(jiàn)參數(shù)獲取和處理方式

    解讀Python腳本的常見(jiàn)參數(shù)獲取和處理方式

    這篇文章主要介紹了Python腳本的常見(jiàn)參數(shù)獲取和處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • python3通過(guò)selenium爬蟲(chóng)獲取到dj商品的實(shí)例代碼

    python3通過(guò)selenium爬蟲(chóng)獲取到dj商品的實(shí)例代碼

    這篇文章主要介紹了python3通過(guò)selenium爬蟲(chóng)獲取到dj商品的實(shí)例代碼,需要的朋友可以參考下
    2019-04-04
  • 如何在Python中導(dǎo)入EXCEL數(shù)據(jù)

    如何在Python中導(dǎo)入EXCEL數(shù)據(jù)

    這篇文章主要介紹了使用Python處理EXCEL基礎(chǔ)操作篇1,如何在Python中導(dǎo)入EXCEL數(shù)據(jù),文中提供了解決思路和部分實(shí)現(xiàn)代碼,一起來(lái)看看吧
    2023-03-03
  • 詳解appium自動(dòng)化測(cè)試工具(monitor、uiautomatorviewer)

    詳解appium自動(dòng)化測(cè)試工具(monitor、uiautomatorviewer)

    這篇文章主要介紹了詳解appium自動(dòng)化測(cè)試工具(monitor、uiautomatorviewer),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python3.8.1+selenium實(shí)現(xiàn)登錄滑塊驗(yàn)證功能

    python3.8.1+selenium實(shí)現(xiàn)登錄滑塊驗(yàn)證功能

    這篇文章主要介紹了python3.8.1+selenium解決登錄滑塊驗(yàn)證的問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • python 借助numpy保存數(shù)據(jù)為csv格式的實(shí)現(xiàn)方法

    python 借助numpy保存數(shù)據(jù)為csv格式的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇python 借助numpy保存數(shù)據(jù)為csv格式的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • PyQt5+QtChart繪制散點(diǎn)圖

    PyQt5+QtChart繪制散點(diǎn)圖

    QChart是一個(gè)QGraphicScene中可以顯示的QGraphicsWidget。本文將利用QtChart實(shí)現(xiàn)繪制散點(diǎn)圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-12-12
  • Python TCP全連接攻擊中SockStress全連接攻擊詳解

    Python TCP全連接攻擊中SockStress全連接攻擊詳解

    Sock Stress 全連接攻擊屬于TCP全連接攻擊,因?yàn)樾枰⒁淮瓮暾腡CP三次握手,該攻擊的關(guān)鍵點(diǎn)就在于,攻擊主機(jī)將windows窗口緩沖設(shè)置為0,實(shí)現(xiàn)的拒絕服務(wù)
    2022-10-10
  • python字符串編碼解碼的使用

    python字符串編碼解碼的使用

    在Python中,字符串的編碼和解碼操作可以通過(guò)字符串的encode()和decode()方法來(lái)實(shí)現(xiàn),本文主要介紹了python字符串編碼解碼的使用,感興趣的可以了解一下
    2023-12-12
  • Python多線程掃描端口代碼示例

    Python多線程掃描端口代碼示例

    這篇文章主要介紹了Python多線程掃描端口代碼示例,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02

最新評(píng)論

邵阳县| 来凤县| 卢龙县| 万源市| 崇义县| 曲沃县| 高青县| 枣阳市| 台中县| 绥德县| 雅安市| 黄冈市| 南溪县| 莫力| 泗洪县| 淮北市| 宜城市| 泾源县| 西乌珠穆沁旗| 安阳市| 咸宁市| 蕲春县| 赣榆县| 泰兴市| 招远市| 闻喜县| 邳州市| 承德县| 沙河市| 镇平县| 忻城县| 延安市| SHOW| 通化县| 广汉市| 仁怀市| 镇安县| 龙江县| 樟树市| 始兴县| 扬中市|