開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
正しい比率で描くとこんなもんでしょうか pic.twitter.com/XpsyaulAvB
— Haruhiko Okumura (@h_okumura) 2017年7月25日
このグラフは...。概念的にこういう図を使うことはあるけど、数値を示すのは厳しいでしょ。しかもこれ面積比じゃなくて直径比で表してるし。面積比で描いたしても、丸い形と三日月の形の面積を比較するのは普通無理でしょ...。 https://t.co/ug8y7fID5p
— Takahiro Sumiya (@gnutar) 2017年7月24日
Python(SymPy、matplotlib、matplotlib-venn)だと、集合のベン図とその共通部分等の面積(1要素あたりの面積は等しいと仮定)の比率がどんな感じになるのか試して見た。
スマホ + PC のパーセンテージが39ではなく40なのは、100%にピタッと一致しないのがなんとなくモヤモヤしたから。
コード(Emacs)
Python 3
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from matplotlib_venn import venn2 import matplotlib.pyplot as plt from sympy import FiniteSet s1 = FiniteSet(*range(6, 100)) s2 = FiniteSet(*range(46)) venn2(subsets=[s1, s2], set_labels=('Smart phone', 'PC')) plt.savefig('sample11.svg')
入出力結果(Terminal, IPython)
$ ./sample11.py $
LINEの図より、Haruhiko Okumura さんの図に近い気がする。
ということで、Python、SymPy、matplotlib、matplotlib-venn の組み合わせは、集合の共通部分も含めて、ベン図を面積比を反映して描いてくれるのかも。
0 コメント:
コメントを投稿