LogoMark.png

DataVisualization の変更点


#author("2021-02-11T19:13:38+09:00;2021-02-11T19:11:36+09:00","default:inoue.ko","inoue.ko")
#settableborder(line)

*可視化
Data Visualization
~

***概要
可視化とは、物事の関係性を視覚的に捉えられるように、データを画像・グラフ・図表などに変換することを言います。その目的は以下のように、データから価値や知恵を生み出すことにあります。

''Data'' → ''Information''(構造化) → ''Knowledge''(知見)→ ''Wisdom''(知恵)

~

***様々なグラフ
-[[ヒストグラム>GoogleImage:ヒストグラム]]:縦軸に度数、横軸に項目を対応させ、事項間の度数を比較するもの。度数分布図、柱状グラフともいう。 
-[[散布図>GoogleImage:散布図]]:縦軸、横軸に変数を対応させて、データを点でプロットしたもの
-[[ボックスプロット(箱ひげ図)>GoogleImage:箱ひげ図]]:データのばらつきを、箱(box)と、その両側に出たひげ(whisker)で表現する図。特に品質管理でよく用いられる。
-[[円グラフ>GoogleImage:円グラフ]]:円図形を扇形に分割し、事項の構成比率を表すもの
-[[折れ線グラフ>GoogleImage:折れ線グラフ]]:時系列の推移を表すもの
-[[ヒートマップ>GoogleImage:ヒートマップ]]:2次元データの個々の値を色や濃淡として表現したもの

~
~

**Python ビジュアライゼーション
~

***ライブラリの読み込み
-[[numpy>https://numpy.org/]]|数値計算
 import numpy as np

-[[pandas>Pandas]]|データ解析
 import pandas as pd

-[[matplotlib>https://matplotlib.org/]]|グラフ描画
 import matplotlib.pyplot as plt

-[[seaborn>https://seaborn.pydata.org/]]|matplotlib をベースにした美麗な可視化
 import seaborn as sns

-[[plotly>https://plotly.com/python/]]|動的グラフ作成

-[[folium>https://python-visualization.github.io/folium/]]|地図・位置情報の可視化

-[[wordcloud>https://amueller.github.io/word_cloud/]]|ワードクラウドの描画

-[[pillow>https://pillow.readthedocs.io/]]|画像処理
&small(開発が停止しているPIL(Python Image Library)からフォークされたライブラリ);

~

***データの準備
はじめに対象となるデータを''データフレーム''として読み込む必要があります。データの読み込み方法については、__[[Pandas]]__ のページをご覧下さい。
 df = pd.read_excel('DataSample.xlsx')
~

***ヒストグラム
#image(hist.png,right,30%)
データフレーム(以下 df )からヒストグラムの生成は非常に簡単です。
 df.hist() 全項目一挙表示
 df["GPA"] .hist( ) 特定カラムの表示
~

***散布図
#image(scatter.png,right,30%)
x軸とy軸にカラム項目を指定して表示します。
 df.plot.scatter(x='GPA', y='Attendance')

~

***ボックスプロット
#image(box.png,right,30%)
対象カラム(GPA:成績)を、グループ別(Prefecture:出身県)に分けて表示します。
 df.boxplot( column="GPA", by="Prefecture")

~

***棒グラフ
グラフにしたい内容によっては、事前に「データの平均値を出す」、「クロス集計する」といった処理を行って、新しいデータフレーム(表)を作成します。

 # 性別ごとに国語・英語・数学の平均値を算出
 df_mean = df.groupby("Gender", as_index=False).mean() 
 df_mean
||Gender|Japanese|English|Mathematics|h
|0|F|62.350000|58.475000|39.800000|
|1|M|56.420455|41.142045|39.539773|

#image(bar.png,right,30%)
生成された df_mean を使うと、簡単に積み重ね棒グラフができます。
 df_mean.plot.bar(stacked=True)

~
~

**サンプルノート
以下に、Matplotlib を用いたグラフ表示のサンプルを掲載しています。
ipynb(JupyterNotebook)形式で、GitHubに置いていますが、レンダリングがタイムアウトする場合は、下の nbviewer 経由でご覧下さい。

-1. 数式(乱数を含む)により生成したデータの可視化
--GitHub:[[DataVisualization01.ipynb>https://github.com/koichi-inoue/JupyterNotebook/blob/master/DataVisualization01.ipynb]]
--nbviewer:[[DataVisualization01.ipynb>https://nbviewer.jupyter.org/github/koichi-inoue/JupyterNotebook/blob/master/DataVisualization01.ipynb]]

-2. 統計サンプル irisデータの可視化
--GitHub:[[DataVisualization02.ipynb>https://github.com/koichi-inoue/JupyterNotebook/blob/master/DataVisualization02.ipynb]]
--nbviewer:[[DataVisualization02.ipynb>https://nbviewer.jupyter.org/github/koichi-inoue/JupyterNotebook/blob/master/DataVisualization02.ipynb]]

~
~