続・えちごやん個人メモのブログ

えちごやん個人メモの移転先...。

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()

f:id:H58:20130720185743p:image:w640

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

今、読み返すと恥ずかしいコード。

データはもっと、エレガントに取り込めるはずです。