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

Python利用matplotlib實(shí)現(xiàn)繪制密度散點(diǎn)圖

 更新時(shí)間:2024年04月28日 09:41:08   作者:瘋狂學(xué)習(xí)GIS  
這篇文章主要介紹了如何基于Python語言的matplotlib模塊,對(duì)Excel表格文件中的指定數(shù)據(jù)加以密度散點(diǎn)圖繪制的方法,有需要的小伙伴可以參考下

本文介紹基于Python語言的matplotlib模塊,對(duì)Excel表格文件中的指定數(shù)據(jù),加以密度散點(diǎn)圖繪制的方法。

首先,明確一下本文的需求。

現(xiàn)有一個(gè).csv格式的表格文件,其各列數(shù)據(jù)的開頭部分如下圖所示。其中,對(duì)于名稱為26的這1列(左側(cè)紫色框內(nèi)數(shù)據(jù)),我們希望提取其數(shù)值等于1的所有行,并對(duì)這些行中的NIR_predict列與NIR_true列(右側(cè)紫色框內(nèi)數(shù)據(jù))的數(shù)值加以密度散點(diǎn)圖的繪制。

明確了需求,即可開始代碼的撰寫。本文所用代碼如下。

# -*- coding: utf-8 -*-
"""
Created on Mon Apr  1 12:14:38 2024

@author: fkxxgis
"""

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde

csv_file_path = r"E:\04_Reconstruction\99_MODIS\Train_Model_0715_Main_Combine.csv"
picture_file_path = r"E:\04_Reconstruction\99_MODIS\Scatter_result.png"

data = pd.read_csv(csv_file_path)

x = data[data["26"] == 1]['NIR_true']
y = data[data["26"] == 1]['NIR_predict']

xy = np.vstack([x,y])
z = gaussian_kde(xy)(xy)
idx = z.argsort()
plt.scatter(x, y, c = z, s = 10, cmap = "Spectral")
plt.colorbar()

plt.rc("font", family = "Times New Roman")
x_line = np.linspace(min(min(x), min(y)), max(max(x), max(y)), 100)
plt.plot(x_line, x_line, color='black', linestyle='--')
plt.xlabel('NIR_true')
plt.ylabel('NIR_predict')
plt.savefig(picture_file_path, dpi = 400)
plt.show()

首先,我們通過import語句導(dǎo)入所需模塊。其中,numpy用于數(shù)值計(jì)算,pandas用于數(shù)據(jù)處理,matplotlib.pyplot用于繪圖,scipy.stats.gaussian_kde用于計(jì)算核密度估計(jì)。

其次,通過csv_file_path定義待繪圖的.csv格式文件的路徑,通過picture_file_path定義存儲(chǔ)所得圖片結(jié)果的路徑。

隨后,使用pd.read_csv()從.csv格式文件中讀取數(shù)據(jù),并存儲(chǔ)在名為data的DataFrame中。通過篩選條件data["26"] == 1從DataFrame中獲取符合指定條件的數(shù)據(jù),并分別存儲(chǔ)在x和y中。

接下來,使用np.vstack()將x和y垂直堆疊為一個(gè)二維數(shù)組xy,并使用scipy.stats.gaussian_kde()計(jì)算二維數(shù)據(jù)的核密度估計(jì)值,并將其存儲(chǔ)在z中;使用z.argsort()對(duì)z進(jìn)行排序,返回索引值,并將其存儲(chǔ)在idx中。使用plt.scatter()繪制散點(diǎn)圖,其中x和y是散點(diǎn)的橫縱坐標(biāo),c是顏色值,s是散點(diǎn)的大小,cmap是顏色映射,并使用plt.colorbar()添加顏色條。

緊接著,使用plt.rc()設(shè)置字體為Times New Roman;隨后,生成一條直線的橫坐標(biāo)范圍,使用np.linspace()生成一系列橫坐標(biāo)值,并存儲(chǔ)在x_line中;這些點(diǎn)將組成后續(xù)所得散點(diǎn)圖中的x = y線;使用plt.plot()繪制直線,顏色為黑色,線型為虛線。此外,使用plt.xlabel()和plt.ylabel()添加x軸和y軸的標(biāo)簽,使用plt.savefig()將圖形保存為指定路徑的圖片文件,設(shè)置dpi值為400。最后,使用plt.show()顯示圖形。

執(zhí)行上述代碼,即可在結(jié)果文件夾中看到所得圖片;如下圖所示。

可以看到,我們已經(jīng)繪制得到了指定數(shù)據(jù)之間的密度散點(diǎn)圖。當(dāng)然,我這里所選色帶,將密度較低的區(qū)域標(biāo)記為紅色系,密度較高的區(qū)域標(biāo)記為了藍(lán)色系,可能和一般情況下大家常用的色系相反——我是一開始選錯(cuò)了,后面也沒有修改,這里大家理解即可;如果需要修改這個(gè)色系,大家修改上述代碼中的cmap = "Spectral"部分即可。

至此,大功告成。

到此這篇關(guān)于Python利用matplotlib實(shí)現(xiàn)繪制密度散點(diǎn)圖的文章就介紹到這了,更多相關(guān)Python matplotlib繪制密度散點(diǎn)圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中pop()函數(shù)的語法與實(shí)例

    python中pop()函數(shù)的語法與實(shí)例

    這篇文章主要給大家介紹了關(guān)于python中pop()函數(shù)語法與實(shí)例的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 利用Python通過商品條形碼查詢商品信息的實(shí)現(xiàn)示例

    利用Python通過商品條形碼查詢商品信息的實(shí)現(xiàn)示例

    這篇文章主要介紹了利用Python通過商品條形碼查詢商品信息,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù)

    python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù)

    大家好,本篇文章主要講的是python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • 使用Python實(shí)現(xiàn)嵌套繪圖并為條形圖添加自定義標(biāo)注

    使用Python實(shí)現(xiàn)嵌套繪圖并為條形圖添加自定義標(biāo)注

    論文繪圖時(shí)經(jīng)常需要多圖嵌套,正好最近繪圖用到了,所以這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)嵌套繪圖并為條形圖添加自定義標(biāo)注,感興趣的可以了解下
    2024-02-02
  • Python?OpenCV超詳細(xì)講解基本功能

    Python?OpenCV超詳細(xì)講解基本功能

    OpenCV用C++語言編寫,它具有C?++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac?OS,OpenCV主要傾向于實(shí)時(shí)視覺應(yīng)用,并在可用時(shí)利用MMX和SSE指令,本篇文章帶你了解OpenCV的基本功能
    2022-04-04
  • 在pytorch中為Module和Tensor指定GPU的例子

    在pytorch中為Module和Tensor指定GPU的例子

    今天小編就為大家分享一篇在pytorch中為Module和Tensor指定GPU的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python命名空間與作用域深入全面詳解

    Python命名空間與作用域深入全面詳解

    命名空間是從名稱到對(duì)象的映射,大部分的命名空間都是通過 Python 字典來實(shí)現(xiàn)的,作用域就是一個(gè)可以直接訪問命名空間的正文區(qū)域。程序的變量并不是在哪個(gè)位置都可以訪問的,訪問權(quán)限決定于這個(gè)變量是在哪里賦值的
    2022-11-11
  • 一文教你將Visual Studio Code變成Python開發(fā)神器

    一文教你將Visual Studio Code變成Python開發(fā)神器

    Visual Studio Code 是一款功能強(qiáng)大、可擴(kuò)展且輕量級(jí)的代碼編輯器,經(jīng)過多年的發(fā)展,已經(jīng)成為 Python 社區(qū)的首選代碼編輯器之一。本文將為大家介紹一下如何將Visual Studio Code變成Python開發(fā)神器,需要的可以參考一下
    2022-07-07
  • 利用Python計(jì)算質(zhì)數(shù)與完全數(shù)的方法實(shí)例

    利用Python計(jì)算質(zhì)數(shù)與完全數(shù)的方法實(shí)例

    這篇文章主要介紹了利用Python計(jì)算質(zhì)數(shù)與完全數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python dict remove數(shù)組刪除(del,pop)

    python dict remove數(shù)組刪除(del,pop)

    我們?cè)谟脭?shù)組列表做刪除的時(shí)候,可能選擇2個(gè)方法,一個(gè)是del,一個(gè)是pop方法
    2013-03-03

最新評(píng)論