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

詳解如何在Matplotlib中繪制平滑曲線

 更新時間:2024年04月22日 09:19:10   作者:python收藏家  
這篇文章主要為大家詳細介紹了如何在Matplotlib中繪制平滑曲線,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考下

很多時候,我們有從非常分散的數(shù)據(jù)列表中生成的線圖,這使得圖形看起來像連接點的直線,或者非常密集,這導致數(shù)據(jù)點彼此非常接近,因此圖看起來很混亂。

默認情況下,matplotlib.pyplot.plot()函數(shù)通過用直線連接數(shù)據(jù)中的兩個相鄰點來生成曲線,因此matplotlib.pyplot.plot()函數(shù)不會為小范圍的數(shù)據(jù)點生成平滑曲線。

示例:

import numpy as np
import matplotlib.pyplot as plt

# Dataset
x = np.array([ 1, 2, 3, 4, 5, 6, 7, 8 ])
y = np.array([ 20, 30, 5, 12, 39, 48, 50, 3 ])

# Plotting the Graph
plt.plot(x, y)
plt.title("Curve plotted using the given points")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

可以看到,由于底層數(shù)據(jù)不遵循平滑的直線,因此該圖一點也不平滑。為了繪制一條平滑的曲線,我們首先將一條樣條曲線擬合到曲線上,并使用該曲線來找到x值的y值,x值被一個無限小的間隙隔開。我們可以通過用一個非常小的間隙畫出這些點來得到一條光滑的曲線。

我們可以使用以下方法來創(chuàng)建此數(shù)據(jù)集的平滑曲線:

1.使用PyPlot繪制平滑曲線:

它通過首先使用scipy.interpolate.make_interp_spline()確定樣條曲線的系數(shù)來繪制平滑的樣條曲線。我們使用給定的數(shù)據(jù)點來估計樣條曲線的系數(shù),然后使用這些系數(shù)來確定非常接近的x值的y值,以使曲線看起來平滑。這里我們將使用np.linspace()方法,它返回在指定時間間隔內(nèi)計算的均勻間隔的樣本??蛇x參數(shù)num是在start和stop范圍內(nèi)生成的樣本數(shù)。默認值為50,且必須為非負數(shù)。我們希望該參數(shù)具有足夠高的值以生成平滑曲線。讓我們在最小值和最大值之間沿X軸沿著取500個等距樣本來繪制曲線。

語法:

numpy.linspace(start, stop, num = 50, endpoint = True, retstep =
False, dtype = None, axis = 0)
X_Y_Spline = scipy.interpolate.make_interp_spline(x, y)

import numpy as np
import numpy as np
from scipy.interpolate import make_interp_spline
import matplotlib.pyplot as plt 

# Dataset
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([20, 30, 5, 12, 39, 48, 50, 3])

X_Y_Spline = make_interp_spline(x, y)

# Returns evenly spaced numbers
# over a specified interval.
X_ = np.linspace(x.min(), x.max(), 500)
Y_ = X_Y_Spline(X_)

# Plotting the Graph
plt.plot(X_, Y_)
plt.title("Plot Smooth Curve Using the scipy.interpolate.make_interp_spline() Class")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

2. 三次插值樣條曲線

它使用scipy.interpolate.interp1d類生成一條三次插值曲線,然后我們使用該曲線來確定平滑曲線的密集x值的y值。這里我們也將使用np.linspace()方法,該方法返回在指定時間間隔內(nèi)計算的均勻間隔的樣本。讓我們在最小值和最大值之間沿X軸沿著取500個等距樣本來繪制曲線。根據(jù)您希望直線彎曲的程度,可以修改第三個參數(shù)(num)的值。

語法:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False,
dtype=None, axis=0)
cubic_interpolation_model=scipy.interpolate.interp1d(x,y,kind=”cubic”)

import numpy as np
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt 

# Dataset
x=np.array([1, 2, 3, 4, 5, 6, 7, 8])
y=np.array([20, 30, 5, 12, 39, 48, 50, 3])

cubic_interpolation_model = interp1d(x, y, kind = "cubic")

# Plotting the Graph
X_=np.linspace(x.min(), x.max(), 500)
Y_=cubic_interpolation_model(X_)

plt.plot(X_, Y_)
plt.title("Plot Smooth Curve Using the scipy.interpolate.interp1d Class")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

到此這篇關(guān)于詳解如何在Matplotlib中繪制平滑曲線的文章就介紹到這了,更多相關(guān)Matplotlib繪制平滑曲線內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用python爬取城市公交站點

    利用python爬取城市公交站點

    這篇文章主要介紹了利用Python爬蟲爬取城市公交站點的數(shù)據(jù),文中的代碼具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-12-12
  • python tools實現(xiàn)視頻的每一幀提取并保存

    python tools實現(xiàn)視頻的每一幀提取并保存

    這篇文章主要為大家詳細介紹了python tools實現(xiàn)視頻的每一幀提取并保存,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • python多次繪制條形圖的方法

    python多次繪制條形圖的方法

    這篇文章主要為大家詳細介紹了python多次繪制條形圖的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • PyQt5 在label顯示的圖片中繪制矩形的方法

    PyQt5 在label顯示的圖片中繪制矩形的方法

    今天小編就為大家分享一篇PyQt5 在label顯示的圖片中繪制矩形的方法,具有很好的參考價值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python多進程通信Queue、Pipe、Value、Array實例

    Python多進程通信Queue、Pipe、Value、Array實例

    這篇文章主要介紹了Python多進程通信Queue、Pipe、Value、Array實例,queue和pipe用來在進程間傳遞消息、Value + Array 是python中共享內(nèi)存映射文件的方法,需要的朋友可以參考下
    2014-11-11
  • Python如何讀取base64圖片數(shù)據(jù)

    Python如何讀取base64圖片數(shù)據(jù)

    在Python中,使用base64模塊可以解碼Base64編碼的圖片數(shù)據(jù),首先需要去除Base64字符串的前綴,然后使用base64.b64decode()函數(shù)進行解碼,最后將解碼后的數(shù)據(jù)保存為圖片文件,適用于各種MIME類型的Base64編碼
    2024-09-09
  • Python中GIL的使用詳解

    Python中GIL的使用詳解

    GIL的全稱為Global Interpreter Lock,全局解釋器鎖。本篇文章詳細的介紹了Python中GIL的使用,有需要了解Python中GIL用法的朋友可參考。希望此文章對各位有所幫助
    2018-10-10
  • python實現(xiàn)人機對戰(zhàn)的五子棋游戲

    python實現(xiàn)人機對戰(zhàn)的五子棋游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)人機對戰(zhàn)的五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Python中__slots__屬性介紹與基本使用方法

    Python中__slots__屬性介紹與基本使用方法

    在Python中,每個類都有實例屬性。默認情況下Python用一個字典來保存一個對象的實例屬性。這非常有用,因為它允許我們在運行時去設(shè)置任意的新屬性。下面這篇文章主要給大家介紹了關(guān)于Python中__slots__屬性與基本使用方法的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • python如何可視化經(jīng)緯度信息

    python如何可視化經(jīng)緯度信息

    在Python中處理經(jīng)緯度信息,首先通過篩選得到符合條件的停車點,并去除重復數(shù)據(jù),利用這些數(shù)據(jù)點的索引值將原始數(shù)據(jù)進行分段,并繪制地圖,處理重復數(shù)據(jù)時可以使用set()方法或列表生成式,最后,可以通過DataFrame的join方法合并具有相同索引值的數(shù)據(jù)
    2024-09-09

最新評論