pandas.DataFrame.plot(kind='box') 和 pandas.DataFrame.boxplot() 之间的不一致

Inconsistency between pandas.DataFrame.plot(kind='box') and pandas.DataFrame.boxplot()

我在尝试制作 pandas.DataFrame 中一列与另一列的箱线图时遇到了以下问题。这是代码:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(60))
df.columns = ['Values']
names = ('one','two','three')*int(df.shape[0]/3)
df['Names'] = names

df.plot(x='Names', y='Values', kind='box')
df.boxplot(column='Values', by='Names')

我希望两个情节相同,但我得到:

这是预期的行为吗?如果是,应如何更改第一个图的表达式以匹配第二个图?

.boxplot().plot(kind='box')/.plot.box() 是单独的实现。 .plot(kind='box')/.plot.box() 的问题在于,尽管参数 by 存在,但它没有实现,因此被忽略(参见 this issue for example, and they never managed to document it properly),这意味着您将无法重现你用 .boxplot().

得到的结果

Tl;dr .plot(kind='box')/.plot.box() 实现不佳,请改用 .boxplot()