我有下面的代码来绘制维恩图。
import numpy as np
import pandas as pd
import matplotlib_venn as vplt
x = np.random.randint(2, size=(10,3))
df = pd.DataFrame(x, columns=['A', 'B','C'])
print(df)
v = vplt.venn3(subsets=(1,1,1,1,1,1,1))
输出如下所示:
实际上,我想使用数据集找到subsets()
中的数字。如何做到这一点?或者有没有其他简单的方法直接从数据集制作这些维恩图。我还想在它周围做一个框,并将剩余区域注解为所有A、B、C为0的人。然后计算每个圆圈中的人的百分比,并将其作为标签。不知道如何实现这一点。
问题背景:
我有一个包含500多个观察结果的数据集,这三列是从一个变量中记录的,其中可以选择多个选项作为答案。我希望将数据可视化为一个图表,显示有多少人选择了第一、第二等,以及有多少人选择了第一和第二、第一和第三等。
2条答案
按热度按时间py49o6xq1#
使用
numpy.argwhere
获取每列的1
的索引,并绘制结果注意:如果你想画一个额外的框,其中包含不属于任何一个类别的项目数,请添加以下行:
k10s72fa2#
此函数根据包含布尔值的3列Pandas df绘制3圆维恩图。
Three Variable Venn Diagram