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

詳解用Python為直方圖繪制擬合曲線的兩種方法

 更新時間:2019年08月21日 15:48:33   作者:博觀厚積  
這篇文章主要介紹了詳解用Python為直方圖繪制擬合曲線的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

直方圖是用于展示數(shù)據(jù)的分組分布狀態(tài)的一種圖形,用矩形的寬度和高度表示頻數(shù)分布,通過直方圖,用戶可以很直觀的看出數(shù)據(jù)分布的形狀、中心位置以及數(shù)據(jù)的離散程度等。

在python中一般采用matplotlib庫的hist來繪制直方圖,至于如何給直方圖添加擬合曲線(密度函數(shù)曲線),一般來說有以下兩種方法。

方法一:采用matplotlib中的mlab模塊

mlab模塊是Python中強大的3D作圖工具,立體感效果極佳。在這里使用mlab可以跳出直方圖二維平面圖形的限制,在此基礎(chǔ)上再添加一條曲線。在這里,我們以鳶尾花iris中的數(shù)據(jù)為例,來舉例說明。

import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import pandas
# Load dataset
url =
"https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['sepal-length', 'sepal-width','petal-length', 'petal-width', 'class']
dataset = pandas.read_csv(url, names=names)
print(dataset.head(10))
# descriptions
print(dataset.describe())
x = dataset.iloc[:,0] #提取第一列的sepal-length變量
mu =np.mean(x) #計算均值
sigma =np.std(x)
mu,sigma

以上為通過python導入鳶尾花iris數(shù)據(jù),然后提取第一列的sepal-length變量為研究對象,計算出其均值、標準差,接下來就繪制帶擬合曲線的直方圖。

num_bins = 30 #直方圖柱子的數(shù)量

n, bins, patches = plt.hist(x, num_bins,normed=1, facecolor='blue', alpha=0.5)
#直方圖函數(shù),x為x軸的值,normed=1表示為概率密度,即和為一,綠色方塊,色深參數(shù)0.5.返回n個概率,直方塊左邊線的x值,及各個方塊對象
y = mlab.normpdf(bins, mu, sigma)#擬合一條最佳正態(tài)分布曲線y 
plt.plot(bins, y, 'r--') #繪制y的曲線
plt.xlabel('sepal-length') #繪制x軸
plt.ylabel('Probability') #繪制y軸
plt.title(r'Histogram : $\mu=5.8433$,$\sigma=0.8253$')#中文標題 u'xxx' 

plt.subplots_adjust(left=0.15)#左邊距 
plt.show() 


以上命令主要采用mlab.normpdf基于直方圖的柱子數(shù)量、均值、方差來擬合曲線,然后再用plot畫出來,這種方法的一個缺點就是畫出的正態(tài)分布擬合曲線(紅色虛線)并不一定能很好反映數(shù)據(jù)的分布情況,如上圖所示。

方法二:采用seaborn庫中的distplot繪制

Seaborn其實是在matplotlib的基礎(chǔ)上進行了更高級的API封裝,從而使得作圖更加容易,在大多數(shù)情況下使用seaborn就能做出很具有吸引力的圖,而使用matplotlib就能制作具有更多特色的圖。應該把Seaborn視為matplotlib的補充,而不是替代物。

import seaborn as sns 
sns.set_palette("hls") #設置所有圖的顏色,使用hls色彩空間
sns.distplot(x,color="r",bins=30,kde=True)
plt.show()


在這里主要使用sns.distplot(增強版dist),柱子數(shù)量bins也設置為30,kde=True表示是否顯示擬合曲線,如果為False則只出現(xiàn)直方圖。

在這里注意一下它與前邊mlab.normpdf方法不同的是,擬合曲線不是正態(tài)的,而是更好地擬合了數(shù)據(jù)的分布情況,如上圖,因此比mlab.normpdf更為準確。

進一步設置sns.distplot,可以采用kde_kws(擬合曲線的設置)、hist_kws(直方柱子的設置),可以得到:

import seaborn as sns 
import matplotlib as mpl 
sns.set_palette("hls") 
mpl.rc("figure", figsize=(6,4)) 
sns.distplot(x,bins=30,kde_kws={"color":"seagreen", "lw":3 }, hist_kws={ "color": "b" }) 
plt.show()


其中,lw為曲線粗細程度。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入了解Python的繼承

    深入了解Python的繼承

    這篇文章主要為大家介紹了Python 繼承,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python中的with...as用法介紹

    Python中的with...as用法介紹

    這篇文章主要介紹了Python中的with...as用法介紹,本文直接給出用法實例,需要的朋友可以參考下
    2015-05-05
  • 在Linux上安裝Python的Flask框架和創(chuàng)建第一個app實例的教程

    在Linux上安裝Python的Flask框架和創(chuàng)建第一個app實例的教程

    這篇文章主要介紹了在Linux上安裝Python的Flask框架和創(chuàng)建第一個app實例,包括創(chuàng)建一個HTML模版和利用Jinja2模板引擎來做渲染的步驟,需要的朋友可以參考下
    2015-03-03
  • Python中的len()函數(shù)是什么意思

    Python中的len()函數(shù)是什么意思

    這篇文章主要介紹了Python中的len()函數(shù)是什么意思以及l(fā)en()函數(shù)使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 搭建?Selenium+Python開發(fā)環(huán)境詳細步驟

    搭建?Selenium+Python開發(fā)環(huán)境詳細步驟

    這篇文章主要介紹了搭建?Selenium+Python開發(fā)環(huán)境詳細步驟的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • 詳細介紹pandas的DataFrame的append方法使用

    詳細介紹pandas的DataFrame的append方法使用

    這篇文章主要介紹了詳細介紹pandas的DataFrame的append方法使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python實現(xiàn)樹的先序、中序、后序排序算法示例

    Python實現(xiàn)樹的先序、中序、后序排序算法示例

    這篇文章主要介紹了Python實現(xiàn)樹的先序、中序、后序排序算法,結(jié)合具體實例形式分析了Python數(shù)據(jù)結(jié)構(gòu)中樹的定義及常用遍歷、排序操作技巧,需要的朋友可以參考下
    2017-06-06
  • Python headers請求頭如何實現(xiàn)快速添加

    Python headers請求頭如何實現(xiàn)快速添加

    這篇文章主要介紹了Python headers請求頭如何實現(xiàn)快速添加,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • opencv與numpy的圖像基本操作

    opencv與numpy的圖像基本操作

    這篇文章主要介紹了opencv與numpy的圖像基本操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Python使用Pillow進行圖像處理

    Python使用Pillow進行圖像處理

    這篇文章介紹了Python使用Pillow進行圖像處理的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論

合肥市| 湛江市| 丹江口市| 平乡县| 大港区| 连城县| 于都县| 福建省| 静海县| 涪陵区| 绩溪县| 绥化市| 疏勒县| 林芝县| 南江县| 柳林县| 平昌县| 精河县| 尉氏县| 木里| 楚雄市| 公安县| 自治县| 崇义县| 合川市| 礼泉县| 喀喇沁旗| 婺源县| 漳州市| 高唐县| 嘉义县| 临江市| 兴安盟| 黄骅市| 津南区| 西贡区| 巨鹿县| 石屏县| 兰考县| 积石山| 开鲁县|