以下の内容はhttps://pydocument.hatenablog.com/entry/2023/04/02/211944より取得しました。


Python Seabornによるデータ可視化: 基本的な利用方法やサンプルコード

Pythonでデータ分析を行う際、データの視覚的な表現は非常に重要です。Seabornは、matplotlibをベースとしたPythonのデータ可視化ライブラリで、より洗練されたグラフを簡単に作成できます。この記事では、Seabornを使ったデータの可視化方法を、基本的な例とともに紹介します。

Seabornのインストール

Seabornはpipまたはcondaを使ってインストールできます。

pip を使う場合

pip install seaborn

conda を使う場合

conda install seaborn

Seaborn の基本的な使い方

まず、Seabornと、グラフ描画に必要なmatplotlibをインポートします。Jupyter NotebookやJupyter Labでグラフを表示する場合は、%matplotlib inlineマジックコマンドも記述します。(最近の環境では不要な場合もあります)

import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

サンプルデータの読み込み

Seabornには、練習用のサンプルデータセットがいくつか用意されています。ここでは、tipsデータセット(レストランでのチップに関するデータ)を使います。

tips = sns.load_dataset("tips")

tipsデータセットの内容を確認してみましょう。head()メソッドで最初の5行を表示できます。

print(tips.head())

出力

   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

データ可視化の基本

ヒストグラム

データの分布を把握するにはヒストグラムが有効です。histplot()関数を使います。total_bill列(支払い総額)のヒストグラムを表示してみます。

sns.histplot(data=tips, x="total_bill")
plt.show()

sns.histplot(data=tips, x="total_bill")ヒストグラムを描画する設定をしています。data引数にデータセット(ここではtips)、x引数にヒストグラムを表示したい列名(ここでは"total_bill")を指定します。 plt.show()でグラフを表示します。

散布図

2つの変数間の関係性を見るには散布図が役立ちます。scatterplot()関数を使います。total_bill(支払い総額)とtip(チップの額)の関係を見てみましょう。

sns.scatterplot(data=tips, x="total_bill", y="tip")
plt.show()

sns.scatterplot(data=tips, x="total_bill", y="tip")で散布図を描画する設定をしています。data引数にデータセットx引数とy引数にそれぞれx軸、y軸に使う列名を指定します。

箱ひげ図

データのばらつきや外れ値を確認するには箱ひげ図が便利です。boxplot()関数を使います。曜日ごとのtotal_billの分布を見てみましょう。

sns.boxplot(data=tips, x="day", y="total_bill")
plt.show()

sns.boxplot(data=tips, x="day", y="total_bill")で箱ひげ図の設定をしています。x引数にカテゴリ変数となる列、y引数に数値変数となる列を指定します。

ヒートマップ

複数の変数間の相関関係をまとめて可視化するにはヒートマップが便利です。heatmap()関数を使います。 まず、tipsデータセットの数値列間の相関行列を計算します。

correlation_matrix = tips.corr(numeric_only=True) #数値データのみ

この相関行列をヒートマップで表示します。

sns.heatmap(correlation_matrix, annot=True, cmap="coolwarm")
plt.show()

sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')でヒートマップを表示する設定をしています。annot=Trueで各セルに数値を表示、cmap="coolwarm"で色使いを指定します。

別のデータセットを使ったヒートマップの例

Seabornに組み込まれているflightsデータセット(飛行機の月別搭乗者数)を使ってヒートマップを作成することもできます。

flights = sns.load_dataset("flights")
flights_pivot = flights.pivot_table(index="month", columns="year", values="passengers")
sns.heatmap(flights_pivot, cmap="viridis")
plt.show()

flights.pivot_table(index="month", columns="year", values="passengers")で、flightsデータセットを行(index)が月、列(columns)が年、値(values)が搭乗者数となるように変形(ピボット)しています。

よくあるエラーと対処法

以下にSeabornを利用する際に、発生する可能性があるエラーと対応方法です。

AttributeError: module 'seaborn' has no attribute '...'

Seabornのバージョンが古い可能性があります。pip install --upgrade seaborn または conda update seaborn でSeabornを最新版にアップデートしてください。

ValueError: Unknown color palette: ...

指定したカラーパレットが存在しない場合のエラーです。Seabornが提供するカラーパレット名を確認するか、matplotlibのカラーマップを使用してください。

ValueError: 'x' and 'y' must have same first dimension

x軸とy軸のデータの長さが異なる場合のエラーです。データを確認し、長さを揃えてください。

まとめ

Seabornを使うと、Pythonでデータ分析を行う際に、matplotlibを直接使うよりも簡単かつ視覚的に魅力的なグラフを作成できます。この記事では基本的なグラフの作成方法を紹介しましたが、Seabornには他にも多くの機能があります。公式ドキュメントを参照して、さらに高度な可視化にも挑戦してみてください。

最後にPythonのデータ解析の学習に活用できるUdemyのサイトを紹介します。

[PR]

click.linksynergy.com

click.linksynergy.com

click.linksynergy.com




以上の内容はhttps://pydocument.hatenablog.com/entry/2023/04/02/211944より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14