亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python繪制可以表示點(diǎn)密度的散點(diǎn)圖得方法

 更新時(shí)間:2024年05月27日 09:40:18   作者:瘋狂學(xué)習(xí)GIS  
本文介紹基于Python語言的matplotlib模塊,對Excel表格文件中的指定數(shù)據(jù),加以密度散點(diǎn)圖繪制的方法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下

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

現(xiàn)有一個(gè).csv格式的表格文件,其各列數(shù)據(jù)的開頭部分如下圖所示。其中,對于名稱為26的這1列(左側(cè)紫色框內(nèi)數(shù)據(jù)),我們希望提取其數(shù)值等于1的所有行,并對這些行中的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ǔ)在名為dataDataFrame中。通過篩選條件data["26"] == 1DataFrame中獲取符合指定條件的數(shù)據(jù),并分別存儲(chǔ)在xy中。

接下來,使用np.vstack()xy垂直堆疊為一個(gè)二維數(shù)組xy,并使用scipy.stats.gaussian_kde()計(jì)算二維數(shù)據(jù)的核密度估計(jì)值,并將其存儲(chǔ)在z中;使用z.argsort()z進(jìn)行排序,返回索引值,并將其存儲(chǔ)在idx中。使用plt.scatter()繪制散點(diǎn)圖,其中xy是散點(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"部分即可。

至此,大功告成。

以上就是Python繪制可以表示點(diǎn)密度的散點(diǎn)圖得方法的詳細(xì)內(nèi)容,更多關(guān)于Python繪制散點(diǎn)圖的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python自制包并用pip免提交到pypi僅安裝到本機(jī)【推薦】

    python自制包并用pip免提交到pypi僅安裝到本機(jī)【推薦】

    這篇文章主要介紹了python自制包并用pip免提交到pypi僅安裝到本機(jī),本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • python添加命令行參數(shù)的詳細(xì)過程

    python添加命令行參數(shù)的詳細(xì)過程

    Click 是 Flask 的開發(fā)團(tuán)隊(duì) Pallets 的另一款開源項(xiàng)目,它是用于快速創(chuàng)建命令行的第三方模塊,這篇文章主要介紹了python怎么添加命令行參數(shù),需要的朋友可以參考下
    2023-06-06
  • pymysql 開啟調(diào)試模式的實(shí)現(xiàn)

    pymysql 開啟調(diào)試模式的實(shí)現(xiàn)

    這篇文章主要介紹了pymysql 開啟調(diào)試模式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 在django中查詢獲取數(shù)據(jù),get, filter,all(),values()操作

    在django中查詢獲取數(shù)據(jù),get, filter,all(),values()操作

    這篇文章主要介紹了在django中查詢獲取數(shù)據(jù),get, filter,all(),values()操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • python中Scrapy?shell的使用

    python中Scrapy?shell的使用

    這篇文章主要介紹了python入門之Scrapy?shell的使用,scrapy提供了一個(gè)shell。用來方便的測試規(guī)則,下面我們一起進(jìn)入文章學(xué)習(xí)該內(nèi)容吧,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-02-02
  • Windows系統(tǒng)下Chromedriver.exe安裝及配置詳細(xì)教程

    Windows系統(tǒng)下Chromedriver.exe安裝及配置詳細(xì)教程

    ChromeDriver.exe是一款實(shí)用的chrome瀏覽器驅(qū)動(dòng)工具,能夠用于自動(dòng)化測試、網(wǎng)絡(luò)爬蟲和操作瀏覽器,其主要作用是模擬瀏覽器操作,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下Chromedriver.exe安裝及配置的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 淺談Django自定義模板標(biāo)簽template_tags的用處

    淺談Django自定義模板標(biāo)簽template_tags的用處

    這篇文章主要介紹了淺談Django自定義模板標(biāo)簽template_tags的用處,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python趣味挑戰(zhàn)之用pygame實(shí)現(xiàn)簡單的金幣旋轉(zhuǎn)效果

    Python趣味挑戰(zhàn)之用pygame實(shí)現(xiàn)簡單的金幣旋轉(zhuǎn)效果

    今天教大家怎么用pygame實(shí)現(xiàn)簡單的金幣旋轉(zhuǎn)效果,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Python實(shí)現(xiàn)設(shè)計(jì)模式之單例模式詳解

    Python實(shí)現(xiàn)設(shè)計(jì)模式之單例模式詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)設(shè)計(jì)模式之單例模式詳解,設(shè)計(jì)模式是指軟件設(shè)計(jì)問題的推薦方案,設(shè)計(jì)模式一般是描述如何組織代碼和使用最佳實(shí)踐來解決常見的設(shè)計(jì)問題,需謹(jǐn)記一點(diǎn):設(shè)計(jì)模式是高層次的方案,并不關(guān)注具體的實(shí)現(xiàn)細(xì)節(jié),比如算法和數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2023-09-09
  • python實(shí)現(xiàn)矩陣乘法

    python實(shí)現(xiàn)矩陣乘法

    這篇文章主要介紹了python實(shí)現(xiàn)矩陣乘法,矩陣相乘需要前面矩陣的行數(shù)與后面矩陣的列數(shù)相同方可相乘,下面來看看python代碼的具體實(shí)現(xiàn)吧
    2022-01-01

最新評論