我试图绘制一个线条图,它显示数据集中每个时间点的平均值(假设您每天观察100个数据点,并绘制每一天的平均值)--这部分很简单。
我无法理解的是,如何将观测值的分布添加为每个时间步骤的垂直直方图。因为这可能有点难以描述,所以我绘制了一张期望输出的支持级别的油漆图:

#Data is in x, rows are observations, columns are timesteps
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100,10) + np.arange(0,10)/100
plt.plot(np.mean(x,axis=0))
plt.figure()
for i in range(x.shape[1]):
plt.hist(x[:,i], label="i")所以我可以很容易地画出平均值,也可以很容易地画出直方图,但是我很难把它们组合成一个图。我考虑用小提琴的情节,但也没有取得任何进展。任何帮助都是非常感谢的。
发布于 2022-10-28 16:29:18
我不太清楚你想要什么,但你想要的是这样的东西吗?当然,有些地方的曲线不正确,但也许它是接近你想要的。
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
x = np.random.rand(100,10) + np.arange(0,10)/100
fig, ax = plt.subplots()
ax.plot(np.mean(x,axis=0))
for i in range(x.shape[1]):
kde = gaussian_kde(x[:,i])
y = np.linspace(0, 1, 20)
ax.plot(-kde(y)+i, y)

https://stackoverflow.com/questions/74237418
复制相似问题