網站首頁 編程語言 正文
1.關于直方圖
直方圖 也稱 質量分布圖,雖然看起來像柱狀圖,
實際上區別又很大。直方圖通常橫軸表示數據類型,縱軸表示各數據類型的分布情況。
直方圖又可以分為頻數分布直方圖和頻率分布直方圖。其繪制方法并無多少差異,只是描述的事件有所不同。頻數分布直方圖描述的是某事件的數量,而頻率分布則描述的是其發生的頻率。
而關于頻率分布直方圖,又可以理解為是“密度圖”的一種。頻率分布直方圖 和 密度圖 都可以用來描述事件的概率分布,其中頻率分布直方圖描述的是離散型隨機變量的概率分布,而密度圖則描述的是連續型隨機變量的概率分布。
2.plt.hist()
繪制直方圖通過plt.hist()方法實現,其常用的參數有:
x 數據集
bins ------------- 統計數據的區間分布。可以是一個元素為數值的列表,也可以是一個數值。是一個數值的時候可以配合range參數使用。
range ----------- 元組類型,顯示的區間。
當設置區間分布使用數值型的bins和range參數設定時:range確定一個范圍,傳入形式是一個元組(注意不是range范圍對象),左右端點值都可取。數值型的bins表示將該范圍分成的份數(等分)。
density --------- 布爾型,顯示頻率統計結果。默認為None(相當于False),設為False不顯示頻率統計結果;設為True則顯示頻率統計結果,即繪制出的圖像由頻數分布直方圖變為頻率分布直方圖。
histtype -------- 可選參數,即直方圖的類型。默認為bar,即繪制出的“柱狀”條形。還可以設置為barstacked、step、stepfilled。
align -------------可選參數,控制柱狀圖的水平分布,設置值為left、mid 或 right,默認值為mid,也推薦使用mid。left和right會產生部分的空白區域。
log --------------- 布爾類型,默認為False,即y軸是否選擇指數刻度。
stacked --------- 布爾類型,默認為False,表示是否為堆積柱狀圖。
edgecolor------- 設定邊沿顏色
facecolor-------- 可以用來設定直方圖的顏色,也可以簡寫為color。
orientation-------直方圖的方向,默認為豎直方向上的(‘vertical’),設為’horizontal’則表示水平方向上的。
cumulative------默認為False,表示不累積。如果為True則設置累積分度直方圖。
3. 繪制一幅簡單的 頻數 分布直方圖
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] ='#cc00ff'
# 設定隨機數種子為30
np.random.seed(30)
data = np.random.randint(0, 100, 100)
plt.hist(data, bins=[0, 25, 50, 75, 100], facecolor='#ffff00', edgecolor='#FF0000')
plt.xlabel('X指標')
plt.ylabel('樣本個數')
plt.title('X指標頻數分布直方圖')
plt.show()
4. 繪制一幅?頻率?分布直方圖
將density設置為True即可·。
此外我們再修改一些細節,將histtype參數設置為stepfilled(梯狀且填充)。
并把y軸的標簽由“樣本個數”改為“樣本頻率”。
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] ='#cc00ff'
np.random.seed(30)
data = np.random.randint(0, 100, 100)
plt.hist(data, bins=[0, 25, 50, 75, 100], facecolor='#ffff00', edgecolor='#FF0000', density=True, histtype='stepfilled')
plt.xlabel('X指標')
plt.ylabel('樣本頻率')
plt.title('X指標頻數分布直方圖')
plt.show()
圖像效果如下:
5. 累積分布直方圖(水平方向)
增加參數cumulative=True, orientation=‘horizontal’。
此外,因為圖像變成了水平方向,所以也需要把x、y軸標簽互換并稍作調整。
這里設置區間分布使用數值型的bins和range參數設定,范圍為0-100,區間分割為10等份。
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] ='#cc00ff'
np.random.seed(30)
data = np.random.randint(0, 100, 100)
plt.hist(data, bins=10, range=(0, 100), facecolor='#ffff00', edgecolor='#FF0000', density=True, cumulative=True, orientation='horizontal')
plt.xlabel('樣本累積頻率')
plt.ylabel('X指標')
plt.title('X指標頻數分布直方圖')
plt.show()
圖像效果如下:
原文鏈接:https://blog.csdn.net/weixin_48964486/article/details/124093695
相關推薦
- 2022-10-10 pandas?修改列名的實現示例_python
- 2022-06-22 利用Docker?運行?python?簡單程序_docker
- 2022-03-20 Maven工程pom中如何定義jdk版本(maven配置jdk版本)
- 2024-03-15 npm install報錯 Fix the upstream dependency conflict
- 2022-08-04 Python并發編程之IO模型_python
- 2023-03-13 Pandas數據分析常用函數的使用_python
- 2022-10-08 C語言實現影院管理系統程序設計_C 語言
- 2022-03-13 .Net6開發winform程序使用依賴注入_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支