,可以通过以下步骤实现:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
data = [1, 2, 3, 4, 5]
histograms = []
for i in range(len(data)):
# 生成随机数据
sample = np.random.normal(data[i], 1, 1000)
# 计算直方图的频数和边界
counts, bins = np.histogram(sample, bins=30, density=True)
# 将频数归一化到概率密度
probabilities = counts / counts.sum()
# 将直方图添加到列表中
histograms.append((bins[:-1], probabilities))
for histogram in histograms:
bins, probabilities = histogram
plt.plot(bins, probabilities)
plt.title('Histograms')
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.legend([f'Data {i+1}' for i in range(len(data))])
plt.show()
这样,就可以在循环内使用scipy生成新的直方图,并将它们绘制在同一张图上。请注意,这里使用的是scipy库中的norm函数生成随机数据,你也可以根据实际需求使用其他数据源。
【产研荟】直播系列
GAME-TECH
GAME-TECH
企业创新在线学堂
云+社区技术沙龙[第6期]
serverless days
腾讯自动驾驶系列公开课
领取专属 10元无门槛券
手把手带您无忧上云