【发布时间】:2016-09-08 14:05:21
【问题描述】:
我正在尝试在 Python 2.7 中为下面 Pandas 数据框中的 E 列中的每个分类值生成一个箱线图
A B C D E
0 0.647366 0.317832 0.875353 0.993592 1
1 0.504790 0.041806 0.113889 0.445370 2
2 0.769335 0.120647 0.749565 0.935732 3
3 0.215003 0.497402 0.795033 0.246890 1
4 0.841577 0.211128 0.248779 0.250432 1
5 0.045797 0.710889 0.257784 0.207661 4
6 0.229536 0.094308 0.464018 0.402725 3
7 0.067887 0.591637 0.949509 0.858394 2
8 0.827660 0.348025 0.507488 0.343006 3
9 0.559795 0.820231 0.461300 0.921024 1
我愿意使用 Matplotlib 或任何其他绘图库来执行此操作。到目前为止,上面的代码可以将所有类别组合在一个图上。这是生成上述数据并生成绘图的代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# Data
df = pd.DataFrame(np.random.rand(10,4),columns=list('ABCD'))
df['E'] = [1,2,3,1,1,4,3,2,3,1]
# Boxplot
bp = ax.boxplot(df.iloc[:,:-1].values, widths=0.2)
plt.show()
在本例中,类别为 1、2、3、4。我想在同一个图中并排绘制单独的箱线图,仅用于类别 1 和 2,并在图例中显示类别名称。
有没有办法做到这一点?
其他信息:
输出应该类似于here 中的第三个图 - 将“Yes”、“No”替换为“1”、“2”。
【问题讨论】:
-
这个例子行不通,因为matplotlib按列绘制数据,所以会有4个箱线图,分别标记为A、B、C和D。
-
是的,没错。我想有 4 个类别 1 的箱形图和 4 个类别 2 的箱形图。我添加了一个指向 OP 的链接,显示其他地方正在做类似的事情。我正在寻找与此类似的情节。
标签: python-2.7 pandas matplotlib