Venn-diagram – Források átfedésének vizsgálata
A három forrásadat (A, B, C) közötti átfedést egy Venn-diagram szemlélteti, amely megmutatja, hogy mely appID-k találhatók meg kizárólag egy adott adatforrásban, illetve melyek vannak jelen több forrás metszetében is.
Működés
A Venn-diagram létrehozását az alábbi három lépés valósítja meg:
Halmazok kiszámítása appid alapján
A
compute_venn_setsfüggvény mindhárom forráshoz (A, B, C) külön appID-halmazt készít, majd ezek alapján meghatározza:csak A-ban szereplő ID-ket,
csak B-ben szereplő ID-ket,
csak C-ben szereplő ID-ket,
a páronkénti metszeteket (A∩B, A∩C, B∩C),
valamint a mindhárom forrásban megtalálható rekordokat.
set_a = set(a["appid"].astype(str)) set_b = set(b["appid"].astype(str)) set_c = set(c["appid"].astype(str)) only_a = set_a - set_b - set_c a_and_b = (set_a & set_b) - set_c all_three = set_a & set_b & set_c
Elemszámok táblázatos előállítása
A
compute_venn_tablea fenti halmazok elemszámaiból egy jól áttekinthető Pandas DataFrame-et készít, amely CSV-formátumban is elmentésre kerül:data = { "csak A": [len(s["only_a"])], "csak B": [len(s["only_b"])], "csak C": [len(s["only_c"])], "A ∩ B": [len(s["a_and_b"])], "A ∩ C": [len(s["a_and_c"])], "B ∩ C": [len(s["b_and_c"])], "A ∩ B ∩ C": [len(s["all_three"])] }
A Venn-diagram megrajzolása és mentése
A
plot_and_save_vennfüggvény a matplotlib_venn csomaggal rajzolja meg a diagramot, az elemszámokat pedig a megfelelő körökben jeleníti meg.venn3( subsets=( len(s["only_a"]), len(s["only_b"]), len(s["a_and_b"]), len(s["only_c"]), len(s["a_and_c"]), len(s["b_and_c"]), len(s["all_three"]) ), set_labels=("Forrás A", "Forrás B", "Forrás C") )
A diagram a
merge/generated/venn/venn_diagram.pngfájlba kerül mentésre, míg az elemszámos táblázat venn_table.csv formában is elérhető.