[Python][資料分析][Matplotlib][Numpy] 範例:模擬丟 2 顆骰子 1 萬次,用直方圖畫出總和分布

文、意如

技能類型說明
Numpy 隨機randint() 產生隨機整數
陣列運算dice1 + dice2 是兩個陣列相加
Matplotlib使用 hist() 畫出直方圖
視覺化細節rwidthgridxticks 提升圖表美感與可讀性

 

import numpy as np                   # 匯入 numpy 套件,並簡寫為 np
import matplotlib.pyplot as plt     # 匯入 matplotlib 的繪圖模組

# 為了讓每次執行結果都一樣,設定隨機種子
np.random.seed(42)

# 用 randint 產生 10000 個介於 1 到 6 的隨機整數,模擬骰子 1
dice1 = np.random.randint(1, 7, 10000)

# 模擬骰子 2,也丟 10000 次
dice2 = np.random.randint(1, 7, 10000)

# 計算兩顆骰子的總和(每次丟出的點數相加)
total = dice1 + dice2

# 建立一個 8x4 吋的圖表區塊
plt.figure(figsize=(8, 4))

# 畫出總和的直方圖(bins 指每個數字的區間)
# - bins=range(2,14):建立從 2 到 13 的數值區間
# - edgecolor:柱子邊框顏色
# - align='left':柱子對齊左邊
# - rwidth=0.8:柱子的寬度比例
# - color:柱子顏色
plt.hist(total,
         bins=range(2, 14),
         edgecolor='black',
         align='left',
         rwidth=0.8,
         color='skyblue')

# 設定圖表標題
plt.title("丟 2 顆骰子總和的分布(模擬 10000 次)")

# 設定 X 軸標籤
plt.xlabel("總和")

# 設定 Y 軸標籤
plt.ylabel("出現次數")

# 加上水平虛線輔助格線,讓圖更容易閱讀
plt.grid(axis='y', linestyle='--', alpha=0.5)

# 設定 X 軸刻度為 2~12
plt.xticks(range(2, 13))

# 自動調整圖表的邊距與排版
plt.tight_layout()

# 顯示圖表
plt.show()

 

 

Yiru@Studio - 關於我 - 意如