簡體   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