使用循环创建seaborn显示

2024-09-28 01:28:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做的是以每对两个占据一行的方式创建displaot。因此,我使用了以下代码行:

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)

然而,结果是运行时错误和奇怪的图形。 The result

有人知道我做错了什么吗? 谢谢


Tags: columns代码fromdataframestyle方式listfigure
1条回答
网友
1楼 · 发布于 2024-09-28 01:28:09

^{}是一个figure-level function并且总是创建自己的新图形。要获得所需的,您可以创建一个long-form数据帧

下面是一些示例代码,展示了总体思路:

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 using long data

相关问题 更多 >

    热门问题