2016年8月24日水曜日

開発環境

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

問題5-1(ベン図を使って集合の関係を可視化する)

コード(Emacs)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

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


def draw_venn(sets, set_labels=('A', 'B')):
    venn2(subsets=sets, set_labels=set_labels)
    plt.savefig('sports.svg')
    plt.show()


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

if __name__ == '__main__':
    plt.figure(figsize=(4, 4))
    filename = 'sports.csv'
    football, others = read_csv(filename)
    football = sympy.FiniteSet(*football)
    others = sympy.FiniteSet(*others)
    draw_venn([football, others], set_labels=('Football', 'Others'))

入出力結果(Terminal, IPython)

$ ./sample1.py
$

0 コメント:

コメントを投稿