在一张图中绘制来自不同数据框的多个箱线图
Plotting several boxplots from different dataframes in one graph
我正在尝试在一张图中绘制来自不同数据帧的多个箱线图。每个数据帧都有不同的长度。
我正在做的是:
sns.boxplot(x=df1['Numbers'])
sns.boxplot(x=df2['Numbers'])
sns.boxplot(x=df3['Numbers'])
sns.boxplot(x=df4['Numbers'])
然而,这样做的结果是所有箱线图都被一个接一个地绘制出来,无法区分任何东西。
你能帮我解决这个问题吗?
此致
您可以创建一个新的数据框,每个给定的数据框都有一列。 Pandas 将用 NaN
填充列以补偿不同的长度。
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'Numbers': np.random.normal(.1, 1, np.random.randint(30, 100)).cumsum()})
df2 = pd.DataFrame({'Numbers': np.random.normal(.2, 1, np.random.randint(30, 100)).cumsum()})
df3 = pd.DataFrame({'Numbers': np.random.normal(.3, 1, np.random.randint(30, 100)).cumsum()})
df4 = pd.DataFrame({'Numbers': np.random.normal(.4, 1, np.random.randint(30, 100)).cumsum()})
combined_dfs = pd.DataFrame({'df1': df1['Numbers'],
'df2': df2['Numbers'],
'df3': df3['Numbers'],
'df4': df4['Numbers']})
sns.set_style('white')
sns.boxplot(data=combined_dfs, palette='flare')
sns.despine()
plt.show()
我正在尝试在一张图中绘制来自不同数据帧的多个箱线图。每个数据帧都有不同的长度。
我正在做的是:
sns.boxplot(x=df1['Numbers'])
sns.boxplot(x=df2['Numbers'])
sns.boxplot(x=df3['Numbers'])
sns.boxplot(x=df4['Numbers'])
然而,这样做的结果是所有箱线图都被一个接一个地绘制出来,无法区分任何东西。
你能帮我解决这个问题吗? 此致
您可以创建一个新的数据框,每个给定的数据框都有一列。 Pandas 将用 NaN
填充列以补偿不同的长度。
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'Numbers': np.random.normal(.1, 1, np.random.randint(30, 100)).cumsum()})
df2 = pd.DataFrame({'Numbers': np.random.normal(.2, 1, np.random.randint(30, 100)).cumsum()})
df3 = pd.DataFrame({'Numbers': np.random.normal(.3, 1, np.random.randint(30, 100)).cumsum()})
df4 = pd.DataFrame({'Numbers': np.random.normal(.4, 1, np.random.randint(30, 100)).cumsum()})
combined_dfs = pd.DataFrame({'df1': df1['Numbers'],
'df2': df2['Numbers'],
'df3': df3['Numbers'],
'df4': df4['Numbers']})
sns.set_style('white')
sns.boxplot(data=combined_dfs, palette='flare')
sns.despine()
plt.show()