2018年6月5日火曜日

開発環境

Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の5章(集合と確率を操作する)、5.4(プログラミングチャレンジ)、問題5-1(ベン図を使って集合の関係を可視化する)を取り組んでみる。

コード(Emacs)

Python 3

#!/usr/bin/env python3

from matplotlib_venn import venn2
import matplotlib.pyplot as plt
from sympy import FiniteSet
import csv


def draw_venn(sets, labels, filename):
    venn2(subsets=sets, set_labels=labels)
    plt.savefig(filename)


def read_csv(filename):
    football = []
    others = []
    with open(filename) as f:
        reader = csv.reader(f)
        next(reader)
        for row in reader:
            if row[1] == '1':
                football.append(row[0])
            if row[2] == '1':
                others.append(row[0])
    return football, others


if __name__ == '__main__':
    filename = 'sports.csv'
    data = read_csv(filename)
    draw_venn([set(l) for l in data], ['Football', 'Others'],
              filename.replace('csv', 'svg'), )

入出力結果(Terminal, Jupyter(IPython))

$ ./sample1.py
$

0 コメント:

コメントを投稿