[データ科学]人工資源の利用


using Python - anaconda & jupyter notebook

📌 Seaborn


Windows環境でSeabornの使用を開始する場合は、次の手順に従います.
基本的にmatplotlibと一緒に使用します.
次のコードの説明は、以前のmatplotlib投稿に簡単に含まれています.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import rc
import seaborn as sns

plt.rcParams["axes.unicode_minus"] = False
rc("font", family="Malgun Gothic")
%matplotlib inline
まず,単純な三角関数図により基礎フレームワークを決定した.
# 그래프로 나타낼 데이터 준비
x = np.linspace(0, 14, 100)
y1 = np.sin(x)
y2 = 2 * np.sin(x + 0.5)
y3 = 3 * np.sin(x + 1.0)
y4 = 4 * np.sin(x + 1.5)

# seaborn 활용 그래프 그리기
sns.set_style("dark") 		# 그래프 배경 스타일 지정
plt.figure(figsize=(10,6))
plt.plot(x, y1, x, y2, x, y3, x, y4)
plt.show()
上記のコードを実行すると、結果画面は次のようになります.set_style("darkgrid)を上にすると、同じ暗い背景にメッシュテクスチャが一緒に表示されます.

📌 Seabornサンプルチャート


さまざまなオプションを変更して、異なるグラフィックを描画します.
  • boxplot
  • swarmplot
  • lmplot
  • 👉 「tips」によるデータセットの公開tips = sns.load_dataset("tips")

    📚 boxplot

  • 箱ひげ図
  • デフォルトボックスxplot

    plt.figure(figsize=(8,6))
    sns.boxplot(x=tips["total_bill"])
    plt.show()

    色相:カテゴリデータを指定するには

    plt.figure(figsize=(8,6))
    sns.boxplot(
        x="day", 
        y="total_bill", 
        hue="smoker", 
        palette="Set3",   # 지정된 색 조합으로 설정
        data=tips
    )
    plt.show()

    📚 swarmplot


    種別散点
  • は重ならない
  • plt.figure(figsize=(8,6))
    sns.swarmplot(
        x="day", 
        y="total_bill", 
        data=tips, 
        color="0.5"	   # color 는 1일수록 하얀색, 0일수록 검은색
    ) 
    
    plt.show()

    boxplot X swarmplot

    plt.figure(figsize=(8,6))
    # boxplot 그리기
    sns.boxplot(
        x="day", 
        y="total_bill", 
        palette="Set3",
        data=tips
    )
    
    # 그 위에 swarmplot 그리기
    sns.swarmplot(
        x="day", 
        y="total_bill", 
        data=tips, 
        color="0.5"
    ) 
    plt.show()

    📚 lmplot

  • xとy軸要素の関係を理解する
  • 図の透明部分が狭いほど相関が高くなる
    -信頼区間
  • sns.lmplot(
        x="total_bill", 
        y="tip", 
        data=tips, 
        hue="smoker", 
        height=10 	    # 그래프 크기
    )
    plt.show()

    👉 「anscombe」によるデータセットの公開anscombe = sns.load_dataset("anscombe")

    1 Dデータlmplot

    sns.set_style("darkgrid")
    sns.lmplot(
        x="x", 
        y="y", 
        data=anscombe.query("dataset == 'I'"), 
        ci=None,		# ci 신뢰구간 영역 안보이게 함
        
        # 잘보이기 위해 꾸밈 옵션
        height=7,
        scatter_kws={"s":80} # 마커 사이즈 변경
    )
    
    plt.show()

    2 Dデータlmplot

    sns.set_style("darkgrid")
    sns.lmplot(
        x="x", 
        y="y", 
        data=anscombe.query("dataset == 'II'"), # 2차식 데이터
        order=2, 	# 데이터의 차수에 따라 옵션 변경
        ci=None,
        
        height=7,
        scatter_kws={"s":80}
    )
    
    plt.show()

    異常点データ

    sns.set_style("darkgrid")
    sns.lmplot(
        x="x", 
        y="y", 
        data=anscombe.query("dataset == 'III'"), # 아웃라이어가 있는 데이터
        robust=True,     # 원본에서 많이 떨어진 데이터는 없는 셈 친다
        ci=None,
        
        height=7,
        scatter_kws={"s":80} 
    )
    
    plt.show()
    robust=True

    robustオプションがない場合

    📚 heatmap

  • を出力し、一定の画像に各種情報を熱分布形式で表示する.
    👉 「flights」によるデータセットの公開flights = sns.load_dataset("flights")データをトリミングしてグラフィックを描画
    flights = flights.pivot_table(index="month", columns="year", values="passengers")
    熱図を描く
    plt.figure(figsize=(10,6))
    sns.heatmap(
        data=flights, 
        annot=True,    # annot=True 데이터 값 표시
        fmt="d", 	   # fmt="d" 정수형 표현
        cmap="YlGnBu"
    ) , 
    plt.show()

    📚 pairplot


    各データの組合せは
  • メッシュの形で散点等として表される.
    👉 「iris」によるデータセットの公開iris = sns.load_dataset("iris")カテゴリ別pairplotの描画
    sns.pairplot(iris, hue="species")
    plt.show()

    列を選択してpairplotを描画する
    sns.pairplot(
        iris,
        x_vars=["sepal_width", "sepal_length"],
        y_vars=["petal_width", "petal_length"]
    )
    plt.show()