산점도

양적 변수와 양적 변수



두 항목 사이의 산점도



matplotlib
import matplotlib.pyplot as plt

# columnsの2項目から散布図作成
plt.scatter(df['column1'], df['column2'])
# 横軸と縦軸のラベルを追加
plt.xlabel('column1')
plt.ylabel('column2')
plt.show()

# column1とcolumn2の相関係数
print(df[['column1', 'column2']].corr())



seaborn
import seaborn as sns

sns.scatterplot(data=df, x="column1", y="column2")

# column1とcolumn2の相関係数
print(df[['column1', 'column2']].corr())



양적 변수의 산점도 + 질적 변수


sns.scatterplot(data=df, x="column1", y="column2", hue="y")
# hue="y"は色で区別/style="y"で形で区別
# 重なりが多い場合 alpha = 0~1 で濃度調整

# column1とcolumn2の相関係数
print(df[['column1', 'column2']].corr())



양적 변수 산점도 + 양적 변수 (버블 차트)


import seaborn as sns

sns.scatterplot(data=df, x="column1", y="column2", hue="y", size="column3", sizes=(10,200))

# scatterplot関数の引数sizeに量的変数を指定する
# sizesではplotの大きさ範囲を指定
# alpha=0~1で濃度調整

# ageとbalanceの相関係数
print(df[['column1', 'column2']].corr())



범례 항목 외출


ax = sns.scatterplot(data=df, x="column1", y="column2", hue="y", size="column3", sizes=(10,200))
ax.legend(loc="upper left", bbox_to_anchor=(1,1))

print(df[['column1', 'column2']].corr())



plotly
# pip install plotly

import plotly.express as px

fig=px.scatter(df,x="column1", y="column2", size ="column3", color="y",size_max=30)
fig.show()



조인트 플롯


import seaborn as sns

sns.jointplot(data=df, x="column1", y="column2",marginal_kws={"bins":10})
# ヒストグラムの本数を指定する marginal_kws={"bins":本数}
# 色の指定:color
# kind="hex" でplotから六角形のビン表示になる。濃度がプロットの密度を表す。
# hueを引数には持てない模様


# column1とcolumn2の相関係数
print(df[['column1', 'column2']].corr())


# 相関係数とp値の表示
sns.jointplot(data=df, x="column1", y="column2",marginal_kws={"bins":10}).annotate(stats.pearsonr)

# 表示枠消し
sns.jointplot(data=df, x="column1", y="column2",marginal_kws={"bins":10}).annotate(stats.pearsonr, frameon=False)


산점도 행렬



두 항목 간의 관계를 일괄 표시

matplotlib
import matplotlib.pyplot as plt

# 散布図行列の描画
pd.plotting.scatter_matrix(df[['column1','column2','column3','column4']])
plt.tight_layout()
plt.show()



산점도 행렬 → 상관 계수 행렬 → heatmap


import seaborn as sns
sns.pairplot(data=df[['column1','column2','column3','column4',"y"]],hue="y", diag_kind = "hist")
plt.show()

# ここでも hue を引数にとって質的変数の分布を見ることができる
# 質的変数ごとに色分けを指定する場合:palette={'yes': 'red','no':'blue'}
# plotするmarkerを指定する場合markers='+' / markers=['+', 's', 'd']

# 対角成分のプロット ヒストグラム:diag_kind = "hist" / カーネル密度推定 diag_kind = "kde"

# plotの濃度調整:alpha=0~1

# 二項目間の散布図に回帰直線を書く:kind='reg'

# 出力グラフサイズの指定:height=2

# グラフ化する列を指定する:x_vars=['column1', 'column2'],y_vars=['column1', 'column2']

# 指定するdf内にhueに指定したいobject型データが必要
# sns.pairplot(df[['column1','column2','column3','column4']],hue="y") だとエラー

# type(df[['column1','column2','column3','column4',"y"]]) # pandas.core.frame.DataFrame

# 出力したpairplotを.pngで保存
# sns.pairplot(df[['column1','column2','column3','column4',"y"]],hue="y").savefig('file.png')

# 相関係数行列
corr = df[['column1','column2','column3','column4',"y"]].corr(method="pearson")
print(corr)

# 相関係数行列からheatmapを作る
sns.heatmap(corr, cmap='coolwarm', annot=True)
plt.show()
# annnotで相関係数の記載のオンオフ





양적 및 질적 변수


import seaborn as sns

sns.catplot(data=df,x="category1", y="column1",hue="y",alpha=0.5)

좋은 웹페이지 즐겨찾기