欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

千鋒扣丁學(xué)堂Python培訓(xùn)之繪制頻率分布直方圖示例

2019-07-08 13:35:07 3405瀏覽

今天千鋒扣丁學(xué)堂Python培訓(xùn)老師給大家分享一篇關(guān)于Python繪制頻率分布直方圖示例的詳細(xì)介紹,下面我們一起來看一下吧。



項(xiàng)目中在前期經(jīng)常要看下數(shù)據(jù)的分布情況,這對(duì)于探究數(shù)據(jù)規(guī)律非常有用。概率分布表示樣本數(shù)據(jù)的模樣,長的好不好看如果有圖像展示出來就非常完美了,使用Python繪制頻率分布直方圖非常簡潔,因?yàn)橛玫念l次非常高,這里記錄下來。還是Python大法好,代碼簡潔不拖沓~

如果數(shù)據(jù)取值的范圍跨度不大,可以使用等寬區(qū)間來展示直方圖,這也是最常見的一種;如果數(shù)據(jù)取值范圍比較野,也可以自定義區(qū)間端點(diǎn),繪制圖像,下面分兩種情況展示

1.區(qū)間長度相同繪制直方圖

#-*- encoding=utf-8 -*-
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
 
 
# 按照固定區(qū)間長度繪制頻率分布直方圖
# bins_interval 區(qū)間的長度
# margin    設(shè)定的左邊和右邊空留的大小
def probability_distribution(data, bins_interval=1, margin=1):
  bins = range(min(data), max(data) + bins_interval - 1, bins_interval)
  print(len(bins))
  for i in range(0, len(bins)):
    print(bins[i])
  plt.xlim(min(data) - margin, max(data) + margin)
  plt.title("probability-distribution")
  plt.xlabel('Interval')
  plt.ylabel('Probability')
  plt.hist(x=data, bins=bins, histtype='bar', color=['r'])
  plt.show()

2.區(qū)間長度不同繪制直方圖

#-*- encoding=utf-8 -*-
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc'
 
# 自己給定區(qū)間,小于區(qū)間左端點(diǎn)和大于區(qū)間右端點(diǎn)的統(tǒng)一做處理,對(duì)于數(shù)據(jù)分布不均很的情況處理較友好
# bins   自己設(shè)定的區(qū)間數(shù)值列表
# margin  設(shè)定的左邊和右邊空留的大小
# label   右上方顯示的圖例文字
"""e
  import numpy as np
  data = np.random.normal(0, 1, 1000)
  bins = np.arange(-5, 5, 0.1)
  probability_distribution_extend(data=data, bins=bins)
"""
def probability_distribution_extend(data, bins, margin=1, label='Distribution'):
  bins = sorted(bins)
  length = len(bins)
  intervals = np.zeros(length+1)
  for value in data:
    i = 0
    while i < length and value >= bins[i]:
      i += 1
    intervals[i] += 1
  intervals = intervals / float(len(data))
  plt.xlim(min(bins) - margin, max(bins) + margin)
  bins.insert(0, -999)
  plt.title("probability-distribution")
  plt.xlabel('Interval')
  plt.ylabel('Probability')
  plt.bar(bins, intervals, color=['r'], label=label)
  plt.legend()
  plt.show()

Case示例

if __name__ == '__main__':
  data = [1,4,6,7,8,9,11,11,12,12,13,13,16,17,18,22,25]
  probability_distribution(data=data, bins_interval=5,margin=0)

效果如下圖



以上就是關(guān)于千鋒扣丁學(xué)堂Python培訓(xùn)之繪制頻率分布直方圖示例的全部內(nèi)容,希望能給大家一個(gè)參考,希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助,想要了解更多關(guān)于Python開發(fā)方面內(nèi)容的小伙伴,請(qǐng)關(guān)注扣丁學(xué)堂Python培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育有專業(yè)的Python講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的Python視頻教程定能讓你快速掌握Python從入門到精通開發(fā)實(shí)戰(zhàn)技能。扣丁學(xué)堂Python技術(shù)交流群:279521237。


扣丁學(xué)堂微信公眾號(hào)                          Python全棧開發(fā)爬蟲人工智能機(jī)器學(xué)習(xí)數(shù)據(jù)分析免費(fèi)公開課直播間


      【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】         【掃碼進(jìn)入Python全棧開發(fā)免費(fèi)公開課】



查看更多關(guān)于"Python開發(fā)資訊"的相關(guān)文章>

標(biāo)簽: Python培訓(xùn) Python視頻教程 Python在線視頻 Python學(xué)習(xí)視頻 Python培訓(xùn)班

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部