列字段内向量的箱线图 Pandas
Box Plot Pandas of a vector within columns fields
我在 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 轴上我应该有相对 'sequence' 和每个 'array'
列的箱线图 'array_for_box_plot'
你能帮帮我吗?
谢谢
如果您执着于该数据结构,那么您将需要遍历每一行并构建您的绘图:
但这不是很 pandas-esque。更 pandas 风格的解决方案是对箱线图数据中的每个观察结果重复 rank
,然后按 rank
分组
尝试如下操作:
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]],
]
我在 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 轴上我应该有相对 'sequence' 和每个 'array'
列的箱线图 'array_for_box_plot'你能帮帮我吗?
谢谢
如果您执着于该数据结构,那么您将需要遍历每一行并构建您的绘图:
但这不是很 pandas-esque。更 pandas 风格的解决方案是对箱线图数据中的每个观察结果重复 rank
,然后按 rank
尝试如下操作:
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]],
]