如何在一个数据帧内创建多个箱线图?

2024-06-02 05:37:03 发布

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

我是Python新手,尝试从一个数据帧绘制多个箱线图

我的数据帧是:

Date     A  B  C  D  E
01-Jan   1  3  6  6  1
01-Feb   2  4  7  4  2
01-Mar   3  5  8  2  9

我想创建5个箱线图,其中每个箱线图代表一个单独的字母。我怎样才能在一个图表中做到这一点?当我有100列时,是否有一种系统化的方法可以这样做,这样我就不必输入100次列名


Tags: 数据方法date字母图表绘制代表mar
2条回答

您可以像下面这样使用^{}

import pandas as pd
import matplotlib.pyplot as plt


df = pd.DataFrame({'Date': ['01-Jan', '01-Feb', '01-Mar'],'A': [1,2,3],'B': [3,4,5],'C': [6,7,8],'D': [6,4,2],'E': [1,2,9],})
df = df.drop('Date',1)
df.boxplot(column=df.columns.tolist(), grid=False)
plt.show()

输出:

enter image description here

或者,您可以将df转换为dict,然后按如下方式绘制boxplots

import pandas as pd
import matplotlib.pyplot as plt

 
df = pd.DataFrame({'Date': ['01-Jan', '01-Feb', '01-Mar'],'A': [1,2,3],
                   'B': [3,4,5],'C': [6,7,8],'D': [6,4,2],'E': [1,2,9],})

df = df.drop('Date',1)
dct = df.to_dict('list')

labels = dct.keys()
plt.boxplot(dct.values())
plt.xticks(range(1, len(labels) + 1), labels)
plt.show()

输出:

enter image description here

导入包

import pandas as pd
import matplotlib.pyplot as plt

创建箱线图的步骤(需要熊猫)

df.boxplot(column=list(df.columns))  # All columns
df.boxplot(column=list(df[['B', 'D']].columns))  # Selected columns
df.boxplot(column=list(df.drop(['B', 'D'], axis=1).columns))  # Drop columns

显示绘图(需要matplotlib)

plt.show()

链接以获取更多信息
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.boxplot.html

相关问题 更多 >