欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

一、所需庫的安裝

首先,本文需要安裝繪制土地利用和土地覆蓋類型圖所需的Python庫。這些庫包括pandas、matplotlib、geopandas等??梢允褂靡韵旅钸M(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è)文件可以通過各種地理數(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)入庫

import geopandas as gpd
import matplotlib.pyplot as plt

本文導(dǎo)入了geopandas和matplotlib庫。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)換過程的圖形。以下是一個(gè)使用plotly繪制土地利用轉(zhuǎn)移?;鶊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庫來創(chuàng)建一個(gè)桑基圖。本文定義了轉(zhuǎn)移矩陣transfer_matrix_2014_to_2024,它表示從2014年到2024年各種土地利用類型之間的轉(zhuǎn)移量。然后,本文創(chuàng)建了節(jié)點(diǎn)標(biāo)簽labels,sourcetarget列表來存儲(chǔ)鏈接的起始和終止節(jié)點(diǎn),以及value列表來存儲(chǔ)鏈接的值。

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

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

pip install plotly

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

六、總結(jié)

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

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

相關(guān)文章

  • 基于Python制作一個(gè)解壓的內(nèi)存加速球

    基于Python制作一個(gè)解壓的內(nèi)存加速球

    安全管家助手什么的上總會(huì)帶一個(gè)內(nèi)存加速球,有關(guān)掉進(jìn)程以及內(nèi)存清理的功能,本文就來利用Python制作一個(gè)解壓的內(nèi)存加速球,有需要的小伙伴可以參考下
    2023-10-10
  • 解決python3安裝pandas出錯(cuò)的問題

    解決python3安裝pandas出錯(cuò)的問題

    這篇文章主要介紹了解決python3安裝pandas出錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Lombok插件安裝(IDEA)及配置jar包使用詳解

    Lombok插件安裝(IDEA)及配置jar包使用詳解

    這篇文章主要介紹了Lombok插件安裝(IDEA)及配置jar包使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python?langchain?ReAct?使用范例詳解

    Python?langchain?ReAct?使用范例詳解

    這篇文章主要介紹了Python?langchain?ReAct?使用范例,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12
  • python os.path模塊使用方法介紹

    python os.path模塊使用方法介紹

    os.path 模塊是系統(tǒng)路徑操作模塊,但實(shí)際的原理可以把它認(rèn)為是處理包含斜杠("/")和反斜杠("\")字符串的模塊,其中,斜杠("/")是 linux 系統(tǒng)下的路徑分隔符,和反斜杠("\")是 windows 系統(tǒng)下的路徑分隔符
    2022-08-08
  • Python項(xiàng)目跨域問題解決方案

    Python項(xiàng)目跨域問題解決方案

    這篇文章主要介紹了Python項(xiàng)目跨域問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 在GitHub Pages上使用Pelican搭建博客的教程

    在GitHub Pages上使用Pelican搭建博客的教程

    這篇文章主要介紹了在GitHub Pages上使用Pelican搭建博客的教程,Pelican是一個(gè)使用Python實(shí)現(xiàn)的開源博客系統(tǒng),需要的朋友可以參考下
    2015-04-04
  • pytest自定義命令行參數(shù)的實(shí)現(xiàn)

    pytest自定義命令行參數(shù)的實(shí)現(xiàn)

    本文主要介紹了在使用pytest運(yùn)行測(cè)試用例時(shí),通過傳遞自定義命令行參數(shù)來啟動(dòng)mitmdump進(jìn)程進(jìn)行抓包,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • python Selenium等待元素出現(xiàn)的具體方法

    python Selenium等待元素出現(xiàn)的具體方法

    在本篇文章里小編給大家分享的是一篇關(guān)于python Selenium等待元素出現(xiàn)的具體方法,以后需要的朋友們可以學(xué)習(xí)參考下。
    2021-08-08
  • Pandas?時(shí)間序列分析中的resample函數(shù)

    Pandas?時(shí)間序列分析中的resample函數(shù)

    這篇文章主要介紹了Pandas?時(shí)間序列分析中的resample函數(shù),Pandas?中的resample函數(shù)用于各種頻率的轉(zhuǎn)換工作,下面我們就來看看其的參數(shù)、相關(guān)資料等,需要的小伙伴可以參考一下,希望給你帶來幫助
    2022-02-02

最新評(píng)論