開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (Amit Saha (著)、No Starch Press)のChapter 5.(Playing with Sets and Probability)、Programming Challenges #1: Using Venn Diagrams to Visualize Relationships Between Sets(No. 3565)を解いてみる。
#4: Using Venn Diagrams to Visualize Relationships Between Sets(No. 3565)
コード(Emacs)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import sympy
from matplotlib_venn import venn2
import matplotlib.pyplot as plt
import csv
def draw_venn(sets, labels=None):
if labels:
venn2(subsets=sets, set_labels=labels)
else:
venn2(subsets=sets)
plt.savefig('football_and_others.svg')
plt.show()
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__':
football, others = read_csv(sys.argv[1])
football = sympy.FiniteSet(*football)
others = sympy.FiniteSet(*others)
draw_venn([football, others], labels=('Football', 'Others'))
入出力結果(Terminal, IPython)
$ ./sample1.py $
0 コメント:
コメントを投稿