考虑一个数据框:
df = pd.DataFrame({'info':['1a','1b','1a','1b','1a','1b'],'list1': np.random.randint(0, 10, (6,15)).tolist()},index=list('AABBCC'))
print(df)
我希望能够创建一个
boxplot
(最好使用seaborn
),并将“色调”应用于“信息”列,以便每个索引A的框(或boxenplot
)图, B、C 彼此相邻 - 在 size plt.figure(figsize=X,Y)
的单个图中。
我熟悉从
dataframe
进行绘图,其中每列有单个值。然而,当有一个列表时,我很难雄辩地绘制它。
explode
之前,您需要将 list1
将您的 seaborn.boxplot
系列转换成长或“整齐”的数据。
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
df = pd.DataFrame(
data={
"info": ["1a", "1b", "1a", "1b", "1a", "1b"],
"list1": np.random.randint(0, 10, (6, 15)).tolist(),
},
index=list("AABBCC"),
)
df = df.explode(column="list1")
sns.boxplot(data=df, x=df.index, y="list1", hue="info")
plt.show()