如何根据DataFrame中的布尔值在箱线图中添加刻度线?

时间:2019-11-23 18:29:58

标签: python pandas numpy seaborn

如何基于'boolean_val'的值在该箱图中添加点或刻度线?

import pandas as pd
import numpy as np
import seaborn as sns

df = pd.DataFrame(np.random.rand(140, 1)*1000, columns=['int_value'])

df['boolean_value'] = np.random.random(df.shape)<0.5

sns.boxplot(x=df['int value'])
plt.show()

1 个答案:

答案 0 :(得分:1)

  • setAdapter设置为要通过单独的分类值进行箱线图绘制的x轴。
getListView().setAdapter( adapter );

enter image description here

  • 在注释中要求添加数据点的内容不是箱形图的工作方式。但是,可以在顶部添加boolean_value,以创建相同的效果。
import pandas as pd
import numpy as np
import seaborn as sns

df = pd.DataFrame(np.random.rand(140, 1)*1000, columns=['int_value'])
df['boolean_value'] = np.random.random(df.shape)<0.5

sns.boxplot(y=df['int_value'], x=df['boolean_value'])
plt.show()

enter image description here

  • 如果您只想绘制swarmplot
sns.boxplot(y=df['int_value'], x=df['boolean_value'])
sns.swarmplot(y=df['int_value'], x=df['boolean_value'], color='black')
plt.show()

enter image description here

  • 如果要将整个分布作为一个箱形图,但只希望显示True数据点。
True

enter image description here

注意:

  • 对于示例数据,很难从视觉上辨别仅True数据的分布与组合的True / False分布之间的差异。
sns.boxplot(y=df['int_value'], x=df['boolean_value'][df['boolean_value']==True])
sns.swarmplot(y=df['int_value'], x=df['boolean_value'][df['boolean_value']==True], color='black')
plt.show()