给定 numpy ndarray,随着时间的推移 Seaborn 小提琴图

smo*_*ays 3 python numpy time-series seaborn violin-plot

我有一个随时间变化的分布,我想使用seaborn为每个时间并排绘制小提琴图。我最初尝试为失败violinplot无法处理np.ndarrayy参数:

import numpy as np
import seaborn as sns

time = np.arange(0, 10)
samples = np.random.randn(10, 200)

ax = sns.violinplot(x=time, y=samples)  # Exception: Data must be 1-dimensional
Run Code Online (Sandbox Code Playgroud)

seaborn文档有一个按分类变量分组的垂直小提琴图示例。但是,它使用长格式的 DataFrame。

我是否也需要将我的时间序列转换为 DataFrame?如果是这样,我如何实现这一目标?

smo*_*ays 6

仔细查看文档让我意识到完全省略xandy参数会导致以data宽格式解释该参数:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt


samples = np.random.randn(20, 10)
ax = sns.violinplot(data=samples)
plt.show()
Run Code Online (Sandbox Code Playgroud)

随着时间的推移小提琴情节