Biểu đồ phân phối chuẩn với khoảng tin cậy 95%
· 2 min read
Giới thiệu
Bài viết này hướng dẫn cách vẽ biểu đồ phân phối chuẩn với khoảng tin cậy 95% bằng thư viện Plotly trong Python.
Mã nguồn
import numpy as np
import plotly.graph_objects as go
from scipy.stats import norm
# Xác định các giá trị cho phân phối chuẩn
mu = 0
sigma = 1
x = np.linspace(mu - 4*sigma, mu + 4*sigma, 1000)
y = norm.pdf(x, mu, sigma)
# Tính z-score cho khoảng tin cậy 95%
confidence_level = 0.95
alpha = 1 - confidence_level
z = norm.ppf(1 - alpha / 2)
# Vùng tô màu cho khoảng tin cậy 95%
x_fill = np.linspace(-z, z, 1000)
y_fill = norm.pdf(x_fill, mu, sigma)
# Tạo biểu đồ bằng Plotly
fig = go.Figure()
# Đường phân phối chuẩn
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='Phân phối chuẩn', line=dict(color='blue')))
# Đường z-score
fig.add_trace(go.Scatter(x=[z, z], y=[0, norm.pdf(z, mu, sigma)], mode='lines', name=f'z = {z:.2f}', line=dict(color='red', dash='dash')))
fig.add_trace(go.Scatter(x=[-z, -z], y=[0, norm.pdf(-z, mu, sigma)], mode='lines', name=f'z = -{z:.2f}', line=dict(color='red', dash='dash')))
# Vùng tô màu khoảng tin cậy 95%
fig.add_trace(go.Scatter(x=np.concatenate(([x_fill[0]], x_fill, [x_fill[-1]])),
y=np.concatenate(([0], y_fill, [0])),
fill='tozeroy', fillcolor='rgba(255, 0, 0, 0.3)',
line=dict(color='rgba(255, 0, 0, 0)'),
name='Khoảng tin cậy 95%'))
# Định dạng biểu đồ
fig.update_layout(title='Biểu đồ phân phối chuẩn với khoảng tin cậy 95%',
xaxis_title='Z-score',
yaxis_title='Mật độ xác suất',
template='plotly_white',
xaxis_rangeslider_visible=False,
width=1200, # Đặt chiều rộng lớn hơn
height=600 # Đặt chiều cao hợp lý
)
# Hiển thị biểu đồ
fig.show()
fig.write_html("bieu_do_phan_phoi_chuan.html", full_html=True, include_plotlyjs="cdn")
Kết luận
Mã nguồn trên giúp vẽ biểu đồ phân phối chuẩn với khoảng tin cậy 95% bằng Plotly. Bạn có thể xuất biểu đồ dưới dạng file HTML để dễ dàng chia sẻ hoặc nhúng vào trang web.