我对这个Pandas / Matplotlib行为感到困惑:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
series = pd.Series(np.arange(10))
classifier = lambda x: 'Odd' if x%2 else "Even"
grouped = series.groupby(classifier)
grouped.plot(kind='box')
plt.show()
如何将箱形图彼此相邻 Pandas style ,即语法很好? :)
(Pandas v.1.16.2,Matplotlib v.1.4.3)
编辑: 我知道我可以这样做:
grouped = grouped.apply(pd.Series.to_frame)
但我认为有更清洁的方法吗?
答案 0 :(得分:2)
所以我的一般建议是避免通过大熊猫绘图,但以下情况除外:
任何其他时间你都想使用seaborn或滚动你自己的matplotlib功能。由于您正在使用数据框,因此尽管标签数据支持很快就会出现在matplotlib的管道中,但是seaborn是您最好的选择。
我还建议您继续创建数据框,并在其中存储分类。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn
seaborn.set(style='ticks')
df = pd.DataFrame(np.arange(10), columns=['val'])
df['class'] = df['val'].apply(lambda x: 'Odd' if x%2 else "Even")
seaborn.boxplot(x='class', y='val', data=df, width=0.5)
seaborn.despine(offset=10, trim=True)