我在这样的pandas中有一个DataFrame:
rank array_for_box_plot \
sequence
1 1.111111 [0, 1, 1, 1, 2, 0, 1, 4, 4, 0, 1, 0, 2, 0, 2, ...
2 0.714286 [1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 3, 1]
3 0.900000 [2, 1, 2, 0, 2, 0, 1, 1, 0, 0]
4 1.300000 [3, 2, 2, 0, 2, 1, 0, 2, 1, 0]
5 0.111111 [0, 1, 0, 0, 0, 0, 0, 0, 0]
6 0.444444 [2, 0, 0, 0, 1, 1, 0, 0, 0]
我会绘制一个箱线图,在x轴上我应该有相对的序列'列的框图' array_for_box_plot'对于每个阵列'
你能帮帮我吗?
由于
答案 0 :(得分:2)
尝试以下内容:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(columns=['frequency', 'array_for_box_plot'], data=data)
fig = plt.figure(1, figsize=(15, 15))
ax = fig.add_subplot(111)
boxplot = ax.boxplot(df.array_for_box_plot.values.tolist())
使用的数据:
data = [
[1, [0, 1, 1, 1, 2, 0, 1, 4, 4, 0, 1, 0, 2, 0, 2]],
[2, [1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 3, 1]],
[3, [2, 1, 2, 0, 2, 0, 1, 1, 0, 0]],
[4, [3, 2, 2, 0, 2, 1, 0, 2, 1, 0]],
[5, [0, 1, 0, 0, 0, 0, 0, 0, 0]],
[6, [2, 0, 0, 0, 1, 1, 0, 0, 0]],
]
答案 1 :(得分:0)
如果您已经结合了该数据结构,那么您需要遍历每一行并构建您的情节:Example of row iteration.
但那不是大熊猫式的。更大熊猫风格的解决方案是对箱线图数据中的每个观察重复rank
,然后按rank
分组