用循环创建seaborn displot

eh329

我想做的是以每对两个占据一行的方式创建displots。所以,我使用了这些代码行:

columns = list(cols) # cols created from dataframe.columns
sns.set(rc = {"figure.figsize": (12, 15)})
sns.set_style(style = "white")

for i in range(len(columns)):
    plt.subplot(10, 2, i + 1)
    sns.displot(data[columns[i]], rug = True)

但是,结果是运行时错误和形状奇怪的图。结果

有谁知道我做错了什么?谢谢

约翰·C

sns.displot图形级别的函数,并且始终创建自己的新图形。为了得到你想要的,你可以创建一个长格式的数据框。

以下是一些示例代码,显示了总体思路:

from matplotlib import pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

data = pd.DataFrame(data=np.random.rand(30, 20), columns=[*'abcdefghijklmnopqrst'])
cols = data.columns
data_long = data.melt(value_vars=cols)
g = sns.displot(data_long, x='value', col='variable', col_wrap=2, height=2)
g.fig.subplots_adjust(top=0.97, bottom=0.07, left=0.07, hspace=0.5)
plt.show()

sns.displot 使用长数据

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章