【发布时间】:2016-06-09 11:46:40
【问题描述】:
我想根据我的 pandas 数据框绘制维恩图。我知道matplotlib_venn 接受集合作为输入。我的数据集包含客户 ID 和另外两列,其中包含客户是否在广告系列中的信息。
df_dataset = pd.read_csv('...path...',delimiter=',',decimal=',')
campaign_a = df_dataset[(df_dataset['CAM_A'] == 1)]
campaign_b = df_dataset[(df_dataset['CAM_B'] == 1)]
plt.figure(figsize=(4,4))
set1 = set(campaign_a['CLI_ID'])
set2 = set(campaign_b['CLI_ID'])
venn3([set1, set2], ('Set1', 'Set2'))
plt.show()
但是我得到一个错误:
文件“C:\Python27\Lib\site-packages\matplotlib_venn_venn3.py”,第 44 行,在 compute_venn3_areas area = np.array(np.abs(diagram_areas), float)
TypeError: abs() 的操作数类型错误:'set'
【问题讨论】:
-
你的集合之间可能没有重叠。你能检查
len(set1 & set2)、len(set1 & set3)和len(set2 & set3)吗? -
最后,我找到了不同的方法。我没有插入数据集,而是按照以下示例仅输入数字:matthiaseisen.com/pp/patterns/p0144
标签: python pandas matplotlib-venn