Iris データで、箱ひげ図boxplotとdotplot, matplotlib,
Irisデータは、
例えば次のサイトからcsvデータを入手できる。
https://vincentarelbundock.github.io/Rdatasets/datasets.html
というサイトから
Package | Item | Title | Rows | Cols |
datasets | iris | Edgar Anderson's Iris Data | 150 | 5 |
のCSVをクリック&ダウンロードで、データ取って来るのが一つの方法で。
pythonで、機械学習のsklearnというライブラリーからdatasetをimportしてって方法もある。
(追記: 2017-05-23)
#!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) # data set from CSV file, x0 = ( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) X1 = (1.4, 1.4, 1.0, 1.7, 1.3, 1.6, 1.4, 1.4, 1.3, 1.6, 1.3, 1.6, 1.4, 1.6, 1.9, 1.6, 1.2, 1.1, 1.2, 1.9, 1.4, 1.4, 1.6, 1.4, 1.5, 1.4, 1.5, 1.5, 1.4, 1.5, 1.7, 1.5, 1.4, 1.3, 1.5, 1.5, 1.3, 1.5, 1.5, 1.3, 1.4, 1.6, 1.4, 1.3, 1.7, 1.5, 1.7, 1.5, 1.5, 1.5) X2 = (4.6, 4.5, 4.8, 4.6, 5.1, 3.9, 4.5, 4.7, 4.7, 4.5, 4.0, 3.8, 4.5, 4, 4.4, 4.4, 4.5, 4.1, 4.5, 3.5, 4.2, 3.3, 4.2, 4.2, 4.6, 3.9, 4.5, 3.5, 3.7, 3.9, 4.3, 4.2, 4, 4.7, 4.4, 4.1, 4.9, 4.7, 4.3, 3, 4.1, 4.7, 3.6, 4.9, 4, 4, 4.4, 4.8, 5, 3.3) X3 = (5.6, 5.6, 5.1, 5.1, 5.2, 5.5, 5.1, 5.9, 5.4, 6.7, 5.7, 6.6, 4.5, 5.2, 5.1, 5, 5.3, 6.4, 5.7, 6.7, 4.9, 6, 4.9, 5.6, 5.6, 4.8, 6.1, 5.6, 5.1, 5.8, 5.9, 5.5, 4.8, 5.6, 6.9, 5, 5.7, 6.1, 4.9, 6.3, 5.8, 5.8, 5.4, 6.1, 5.1, 5.3, 5.5, 5, 5.1, 6.0) # dot plot section ax.plot([x0, X1, X2, X3], marker='.', linestyle='None', ) # box plot section default setting ax.boxplot([X1, X2, X3]) # ticks. xticks = ['sethna', 'versicolor', 'virginica', ] plt.xticks([1, 2, 3], xticks) plt.grid() plt.ylabel('Length') plt.xlabel('type') plt.title('Iris flower petal') plt.show()
Boxplotとdotplotの組合せて、書きたかったのだ。
出来たので、備忘録として。
もっとdotが左右にランダムに点在するように書けるようにするのは、今後の課題だわな。
x0, で0.0の値を50個繰り返している。他のエレガントな書き方があるんだろうけれどね。。
自分がRで探していたもんをpythonだと、あっさり重ねることが出来た。。
データの取り込みについてのcsvの部分を楽に読ませるようにしたいな。
Iris dataは、こちらのエクセルのデータを利用した。。
http://sun.econ.seikei.ac.jp/~shinmura/archive.html
もちろん、参考にしたのは次のページ。
http://www.ike-dyn.ritsumei.ac.jp/~uchida/scipy-lecture-notes/intro/matplotlib/matplotlib.html
他、matplotlibのソースページ。
############
2014-08-27
同じような図をR ggplotで、描くことにしました….
http://d.hatena.ne.jp/H58/20140827/1409143358
############
2016-03-08
今、読み返すと恥ずかしいコード。
データはもっと、エレガントに取り込めるはずです。