繁体   English   中英

如何在 Python 中的单个图形中堆叠多个直方图?

[英]How to stack multiple histograms in a single figure in Python?

我有一个形状为 [30, 10000] 的 numpy 数组,其中第一个轴是时间步长,第二个轴包含观察到的一系列 10000 个变量的值。 我想在一个图中可视化数据,类似于: 在此处输入图片说明

您可以在此处的 seaborn 教程中找到 基本上,我想要的是为 30 个时间步骤中的每一个绘制 30/40 个 bin 的直方图,然后 - 以某种方式 - 将这些直方图连接起来以获得一个公共轴并将它们绘制在同一图中。

我的数据看起来像一个随着时间移动并变得更宽的高斯。 您可以使用以下代码重现类似的内容:

mean = 0.0
std = 1.0

data = []
for t in range(30):
    mean = mean + 0.01
    std = std + 0.1
    data.append(np.random.normal(loc=mean, scale=std, size=[10000]))

data = np.array(data)

与上面显示的图片类似的图形将是最好的,但感谢任何帮助!

谢谢你,G。

使用直方图? 你可以用 np.hist2d 做到这一点,但这种方式更清晰一点......

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(30, 10000)

H = np.zeros((30, 40))
bins = np.linspace(-3, 3, 41)
for i in range(30):
    H[i, :], _ = np.histogram(data[i, :], bins)
fig, ax = plt.subplots()
times = np.arange(30) * 0.1
pc = ax.pcolormesh(bins, times, H)
ax.set_xlabel('data bins')
ax.set_ylabel('time [s]')
fig.colorbar(pc, label='count')

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM