最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
怎么在python中繪制cdf-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)怎么在python中繪制cdf,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專(zhuān)注中小微企業(yè)官網(wǎng)定制,網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。

1、matplotlib.pyplot.hist()

  def hist(self, x, bins=None, range=None, density=None, weights=None,
       cumulative=False, bottom=None, histtype='bar', align='mid',
       orientation='vertical', rwidth=None, log=False,
       color=None, label=None, stacked=False, normed=None,
       **kwargs):

第一種方法,我們使用matplotlib圖形庫(kù)中的hist函數(shù),熟悉該庫(kù)的人應(yīng)該知道這是一個(gè)直方圖繪制函數(shù),以上是從API中找到的hist函數(shù)的所有參數(shù),我們給出一維數(shù)組或者列表x,使用hist畫(huà)出該數(shù)據(jù)的直方圖。

直方圖有兩種形式,分別是概率分布直方圖和累積分布直方圖(可能說(shuō)的不準(zhǔn)確- -?。?,可以通過(guò)參數(shù)cucumulative來(lái)調(diào)節(jié),默認(rèn)為False,畫(huà)出的是PDF,那么True畫(huà)出的便是CDF直方圖。

PDF(figure1)可以觀察到整個(gè)數(shù)據(jù)在橫軸范圍內(nèi)的分布,CDF(figure2)則可以看出不同的數(shù)據(jù)分布間的差異性,也可以觀察到整個(gè)數(shù)據(jù)的增長(zhǎng)趨勢(shì)和波動(dòng)情況。

怎么在python中繪制cdf

上圖是概率分布直方圖,縱軸代表概率,如果置參數(shù)normed=False,縱軸代表頻數(shù)

怎么在python中繪制cdf

如果我們要觀察兩種數(shù)據(jù)分布的差異,可能使用直方圖就不是很直觀,各種直方柱會(huì)相互重疊,我們只需更改直方圖的圖像類(lèi)型,令histtype=‘step',就會(huì)畫(huà)出一條曲線來(lái)(Figure3,實(shí)際上就是將直方柱并在一起,除邊界外顏色透明),類(lèi)似于累積分布曲線。這時(shí),我們就能很好地觀察到不同數(shù)據(jù)分布曲線間的差異。

怎么在python中繪制cdf

2、numpy.histogram

def histogram(a, bins=10, range=None, normed=False, weights=None,
     density=None)

第二種方法我們使用numpy中畫(huà)直方圖的函數(shù)histogram,該函數(shù)不是一個(gè)直接的繪圖函數(shù)(廢話- -!過(guò)渡句,哈哈),給定一組數(shù)據(jù)a,它會(huì)返回兩個(gè)數(shù)組hist和bin_edges,默認(rèn)情況下hist是數(shù)據(jù)在各個(gè)區(qū)間上的頻率,bin_edges是劃分的各個(gè)區(qū)間的邊界,說(shuō)到這我們大概可以想到其實(shí)該函數(shù)算是上一個(gè)函數(shù)的底層函數(shù),我們可以依據(jù)得到的這兩個(gè)數(shù)組來(lái)畫(huà)直方圖,我們也可以用頻率數(shù)組來(lái)直接畫(huà)分布曲線(Figure4)

怎么在python中繪制cdf

這里我只給出了一個(gè)最原始的圖像,直接用hist數(shù)組畫(huà)的,如果想要變成合格的累積分布曲線圖,縱軸為概率(頻率乘區(qū)間長(zhǎng)度),橫軸為區(qū)間(從bin_edges數(shù)組中取n-1個(gè))就可以了

3、stats.relfreq

def relfreq(a, numbins=10, defaultreallimits=None, weights=None)
Returns
-------
frequency : ndarray
  Binned values of relative frequency.
lowerlimit : float
  Lower real limit
binsize : float
  Width of each bin.
extrapoints : int
  Extra points.

第三種方法我們使用stats中的relfreq函數(shù),該函數(shù)和第二種的方法類(lèi)似,也并非是直接畫(huà)圖,而是返回關(guān)于直方圖的一些數(shù)據(jù),這里的frequency直接是概率而非頻率,可以直接作為CDF圖的縱軸,但是橫軸需要自己計(jì)算,計(jì)算公式:

res.lowerlimit + np.linspace(0,res.binsize*res.frequency.size, res.frequency.size)

這個(gè)公式應(yīng)該很好理解,我就不多說(shuō)了,當(dāng)然這些返回值都要依賴我們所給出的bins的數(shù)目。下面我給出一段代碼,便是使用stats.relfreq畫(huà)出概率分布直方圖和累積分布曲線圖。

rng = np.random.RandomState(seed=12345)
samples = stats.norm.rvs(size=1000, random_state=rng)
res = stats.relfreq(samples, numbins=25)
x = res.lowerlimit + np.linspace(0, res.binsize*res.frequency.size,res.frequency.size)
fig = plt.figure(figsize=(5, 4))
ax = fig.add_subplot(1, 1, 1)
ax.bar(x, res.frequency, width=res.binsize)
ax.set_title('Relative frequency histogram')
ax.set_xlim([x.min(), x.max()])
plt.show()

怎么在python中繪制cdf

rng = np.random.RandomState(seed=12345)
samples = stats.norm.rvs(size=1000, random_state=rng)
res = stats.relfreq(samples, numbins=25)
x = res.lowerlimit + np.linspace(0, res.binsize*res.frequency.size,res.frequency.size)
y=np.cumsum(res.frequency)
plt.plot(x,y)
plt.title('Figure6 累積分布直方圖')
plt.show()

怎么在python中繪制cdf

看完上述內(nèi)容,你們對(duì)怎么在python中繪制cdf有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


名稱欄目:怎么在python中繪制cdf-創(chuàng)新互聯(lián)
新聞來(lái)源:http://fisionsoft.com.cn/article/djegcj.html