您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么使用Python matplotlib.pyplot.hist()繪制直方圖”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
hist(x, bins=None, range=None, density=False,weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
plt.hist( x,# 指定要繪制直方圖的數據 bins,# 設置長條形的數目 range,# 指定直方圖數據的上下界,默認包含繪圖數據的最大值和最小值(范圍) density=True or False, # 如果"True",將y軸轉化為密度刻度 默認為None weights,# 該參數可為每一個數據點設置權重 cumulative=True or False,# 是否需要計算累計頻數或頻率 默認值False bottom=0, # 可以為直方圖的每個條形添加基準線,默認為0 histtype={'bar', 'barstacked', 'step', 'stepfilled'} # 設置樣式 # bar柱狀形數據并排,默認值。 # barstacked在柱狀形數據重疊并排(相同的在一起) # step柱狀形顏色不填充 # stepfilled填充的線性 align='mid' or 'left' or 'right', # 設置條形邊界值的對其方式,默認為mid,除此還有'left'和'right' orientation={'vertical', 'horizontal'},# 設置直方圖的擺放方向,默認為垂直方向vertical rwidth,# 設置直方圖條形寬度的百分比 log=True or False,# 是否需要對繪圖數據進行log變換 默認值False color='r',# 設置直方圖的填充色 label, # 設置直方圖的標簽 stacked=True or False, # 當有多個數據時,是否需要將直方圖呈堆疊擺放,默認False水平擺放; facecolor,# 設置長條形顏色(和color效果一致,設置color就不用再設置facecolor) edgecolor,# 設置邊框的顏色 alpha # 設置透明度 ) # 注意組距,得到滿意的展示效果 # 注意y軸所代表的變量是頻數還是頻率
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) # bins設置長條形的數目 plt.hist(data,bins=10) plt.show()
1. bar:柱狀形數據并排(因為bar是默認值,可以不寫)
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10) plt.show()
2. barstacked:在柱狀形數據重疊并排(相同的在一起)
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,histtype='barstacked') plt.show()
3. step:柱狀形顏色不填充
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,histtype='step') plt.show()
4. stepfilled:生成一個默認填充的線圖
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,histtype='stepfilled') plt.show()
不想顯示數據全部范圍,只想查看數據某一個范圍內的數據。(例:下圖數據范圍為140~180之間,只想查看150~170之間的數據)
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,histtype='bar',range=(150,170)) plt.show()
垂直方向(默認垂直,可以不寫):
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10) plt.show()
horizontal水平方向:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal') plt.show()
直方圖為垂直方向時,觀察y軸:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,density=True) plt.show()
直方圖為水平方向時,觀察x軸:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',density=True) plt.show()
直方圖為垂直方向時,觀察y軸:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,weights=data) plt.show()
直方圖為水平方向時,觀察x軸:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',weights=data) plt.show()
頻數:指事件發生的次數
頻率:指次數占總次數n的比例
頻率=頻數/n
直方圖為垂直方向時:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,cumulative=True) plt.show()
直方圖為水平方向時:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',cumulative=True) plt.show()
直方圖為垂直方向時,觀察y軸:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,bottom=170) plt.show()
直方圖為水平方向時,觀察x軸:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',bottom=170) plt.show()
mid(默認值可以不寫):
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10) plt.show()
left:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,align='left') plt.show()
right:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,align='right') plt.show()
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,rwidth=0.5) plt.show()
直方圖為垂直方向時,觀察y軸:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,log=True) plt.show()
直方圖為水平方向時,觀察x軸:
import matplotlib.pyplot as plt import numpy as np data=np.random.randint(140,180,200) plt.hist(data,bins=10,orientation='horizontal',log=True) plt.show()
stacked=False時:(水平擺放)
import matplotlib.pyplot as plt import numpy as np x=np.random.randint(140,180,200) y=np.random.randint(140,180,200) plt.hist([x,y], bins=10) plt.show()
stacked=True時:(堆疊擺放)
import matplotlib.pyplot as plt import numpy as np x=np.random.randint(140,180,200) y=np.random.randint(140,180,200) plt.hist([x,y], bins=10,stacked=True) plt.show()
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif']=['FangSong'] fig=plt.figure(figsize=(8,8)) data=np.random.randint(140,180,200) # data數據 # bins設置長條形的個數 # histtype設置樣式 barstacked:在柱狀形數據重疊并排(相同的在一起) # range顯示范圍 # cumulative累計頻數 # align設置邊界對齊值為中心對齊 # orientation設置擺放方向為horizontal水平方向 # rwidth設置長條形寬度的百分比為20 # color設置長條形的填充顏色為#FFB6C1 # label設置直方圖的標簽 # edgecolor設置長條形邊框線為#FFD700 # alpha設置長條形的透明度為0.5 # density=True 長條形呈水平方向:density將x軸轉換為密度刻度 長條形呈垂直方向:density將y軸轉換為密度刻度 # weights=data為每個數據點設置權重 # bottom設置基準線為15000 # log=True是否對數據進行log轉換 plt.hist(data,bins=10,histtype='barstacked',range=(140,170),cumulative=True,align='mid',orientation='horizontal',rwidth=20,color='#FFB6C1', label='數量',edgecolor='#FFD700',alpha=0.5,weights=data,bottom=10000,log=False) plt.xticks(size=20) # x軸刻度值大小 plt.yticks(size=20) # y軸刻度值大小 plt.title('hist',size=30) # 設置直方圖標簽 plt.xlabel('x軸',size=15) # 設置x軸標簽 plt.ylabel('y軸',size=20) # 設置y軸標簽 plt.rcParams.update({'font.size':20}) # 修改圖例字體大小 plt.legend() plt.show()
import matplotlib.pyplot as plt import numpy as np x=np.random.normal(100,15,10000) y=np.random.normal(80,15,10000) # density=True設置為密度刻度 n1, bins1, patches1 = plt.hist(x, bins=50, density=True, color='#00B8B8', alpha=1) n2, bins2, patches2 = plt.hist(y, bins=50, density=True, color='r', alpha=0.2) plt.plot(bins1[:-1],n1,':',lw=3) plt.plot(bins2[:-1],n2,'--',lw=3) plt.show()
“怎么使用Python matplotlib.pyplot.hist()繪制直方圖”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。