見出し画像

【コピペで使える】Pythonで散布図

この記事を読むと出来るになること

  • データ分析頻出の散布図をseabornで出力出来る様になる

  • 散布図の使い分けやヒストグラムとの組み合わせが出来る

みなさんこんにちは。
今日はデータ分析最頻出と言ってもいい散布図について今日は学んでいきます。分析を進める上で散布図を自由に使えることは非常に重要ですのでマスターしていきましょう

ライブラリのインポートとデータの読み込み

#ライブラリのインポート
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# データのロード
df = sns.load_dataset('tips')

今回もTipsのデータを使用していきます。

Tipsデータの中身

total_bill =支払い総額
tip = 払ったチップの額
sex = 性別
smoker = 喫煙者かどうか
day = 曜日
time = 食事をした時間
size =おそらく人数

支払い総額が多いと払ったチップの総額も多そうですね。
それでは散布図で見ていきましょう。

散布図の実装①基本

sns.scatterplot(y="tip", x="total_bill", data=df)
plt.title("Scatterplot")
x=支払い総額 y=tipとしたときの散布図

出力出来ました。やはり支払い総額に応じてチップが支払われているので
右肩上がりの関係になってますね。
通常はyの方に目的変数を設定します。例えばビールの売り上げと気温の関係だったら x=気温 y=売り上げの様に設定します。

散布図の実装②場合分け含む

次に喫煙の有無で場合分けをして散布図を出力してみましょう

sns.scatterplot(y="tip", x="total_bill",hue="smoker", data=df)
plt.title("Scatterplot")
喫煙有無毎にx=支払い総額y=tipとしたときの散布図

散布図の実装③透明度指定

次は曜日毎に散布図にしてみましょう

sns.scatterplot(y="tip", x="total_bill",hue="day", data=df)
plt.title("Scatterplot")
曜日毎にx=支払い総額y=tipとしたときの散布図

出力出来ましたが重なって見にくいですよね。
そんな時は透明度を指定します。alpha= ”ここに透明度(0〜1)を入力”

sns.scatterplot(y="tip", x="total_bill",hue="day", alpha=0.7, data=df)
plt.title("Scatterplot")
透明度指定後の散布図

透明度を調整することによって多少重なっている部分が見やすくなったかと思います

散布図の実装④ヒストグラムとの合体 ジョイントプロット

先ほどの基本形にヒストグラムを組み合わせた図を出力することも可能です
jointplotを使用します。

sns.jointplot(y="tip", x="total_bill", data=df)

ヒストグラムと散布図を組み合わせた図を出力出来ました。
それぞれの変数のデータの分布も見やすくなりましたね。

本日はここまでです。読んでいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?