gpt4 book ai didi

python - 绘制概率密度

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:08 24 4
gpt4 key购买 nike

我想要一条曲线图 x^5 + x^4 + x^3 + x + 1 每个点 x 都取自正态分布。我有一个均值向量和一个 sigma 值向量。

使用 matplotlib.pyplot 我可以绘制平均值,也可以绘制围绕平均值的方差,但它看起来不优雅并且使输出困惑 Here dashed yellow line is the variance and red line is the mean .

还有其他方法可以绘制密度函数吗?

我用的是这样的:

mu = [mu1, mu2, mu3..]
sigma = [sigma1, sigma2, sigma3..]
variance1 = [mu1+sigma1, mu2+sigma2, ..]
variance2 = [mu1-sigma1, mu2-sigma2,..]


import matplotlib.pyplot as plt
plt.plot(x,mu)
plt.plot(x,variance1, ls = "--")
plt.plot(x,variance2,ls="--")

其中 x 是一个输入数组。

最佳答案

最常见的方法是使用fill_between 来遮蔽置信区间之间的区域。例如:

import numpy as np
np.random.seed(1977)
import matplotlib.pyplot as plt

# Generate data...
x_obs = np.linspace(-2, 2, 20)
true_model = [0.2, -0.1, 4, 2, 1, 0]

noise = np.random.normal(0, 5, x_obs.shape)
y_obs = np.polyval(true_model, x_obs) + noise

# Fit to a 5-th order polynomial
fit_model = np.polyfit(x_obs, y_obs, 5)

x = np.linspace(-3, 3, 100)
y_true = np.polyval(true_model, x)
y_pred = np.polyval(fit_model, x)

# Made up confidence intervals (I'm too lazy to do the math...)
high_bound = y_pred + 3 * (0.5 * x**4 + 3)
low_bound = y_pred - 3 * (0.5 * x**4 + 3)

# Plot the results...
fig, ax = plt.subplots()
ax.fill_between(x, high_bound, low_bound, color='gray', alpha=0.5)
ax.plot(x_obs, y_obs, 'ko', label='Observed Values')
ax.plot(x, y_pred, 'k--', label='Predicted Model')
ax.plot(x, y_true, 'r-', label='True Model')
ax.legend(loc='upper left')
plt.show()

enter image description here

关于python - 绘制概率密度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20116110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com