【Python】seabornでカテゴリーの分類データを描画

Pythonデータ分析の基礎
スポンサーリンク

初心者の独学でのプログラミング学習はとてもツライ…

プログラミングをマスターしたい!

今のIT業界はプログラミングエンジニアが不足していると言われています。
高収入の職業とも言われる分野もありますし、AI、機械学習、ディープラーニング、IOTといった注目される分野が目白押しです。

でも、いざ初心者がプログラミングをマスターしようとすると…

  • 本を読んだりネットの記事で自力で勉強しているけど限界を感じる
  • プログラミングスクールに定期的に通うのは面倒だ
  • 地方に住んでると家の近くにプログラミングスクールなんてない
  • どのプログラミング言語を学べばいいのか悩む
  • 実際の就職や転職にプログラミングが活かせるのか心配だ

など、プログラミングを自分で勉強しようとすると悩みが尽きません。

プログラミングに詳しい友人に教えてもらおうと思っても、そんな友人なんて滅多にいません。いたとしても細かく教えてくれるほど時間に余裕がある人はいないでしょう。

そんな独学でプログラミングをマスターするのに限界を感じてる方に、オンラインプログラミングスクールをがおすすめです。

おすすめのオンラインスクールはこちら

Pythonの描画ライブラリseabornのグラフ表示の続きをやっていきましょう。

ここでは、seabornを使ってカテゴライズされた分類データをプロットすることについてみていきます。

このメソッドには、catplot、boxplot、violinplot、stripplot、swarmplot、barplot、countplotといったものがあります。

ここでもネット上(GitHub)にあるseabornの利用可能なデータセットを使っていきます。

前と同様にtipsのデータセットをload_dataset()を使ってjupyter notebookで見ていきましょう。

スポンサーリンク

分類データを見ていく

前と同様にseabornをインポートして、データセットの’tips’をload_dataset()で読み込んで視覚化するデータの準備をしましょう。

冒頭の5つのデータを表示しています。分類データのグラフ描画をさっそくやっていきましょう。

countplotとbarplot

カテゴリー別の集計データを得ることができるメソッドを見ていきます。

countplot()

countplot()は、カテゴリー別データの出現回数をカウントします。

x軸に性別データを指定して、それぞれのデータ数をカウントします。

男女別の集計が視覚化されているのがわかります。

barplot()

barplot()は、カテゴリデータを関数を使って集計することができます。デフォルトでは平均値が求められます。

性別のtotal_billを求めます。

デフォルトなので平均値で表示されています。

ここで、推定量estimatorに独自の関数を与えてみます。

ここではestimatorに標準偏差のnp.stdを指定しています。そのためにnumpyも合わせてインポートしています。

こちらは標準偏差になっています。

boxplotとviolinplot

次はboxplot()とviolinplot()を使用して、カテゴリ別データの分布を表示してみます。

boxplot()

boxplot()は箱ひげ図と呼ばれるグラフを描くもので、ボックスウィスカープロットとも言われます。データ間またはカテゴリ種別間の比較を容易にする方法で定量データの分布をグラフにします。

「異常値」と判定された点を除いて、ボックスプロットにはデータセットの四分位数が表示され、残りの部分をひげ(ウィスカー)として示します。

ここでは曜日毎のtotal_billを分類します。paletteをrainbowにカラー設定しています。

orientをv(垂直)あるいはh(水平)を指定することで、データ型から判定して全体のグラフを表示します。

ここではorientをhにしています。

今度はhueにカラムを指定して限定したデータを表示してみます。

hueにsmokerを指定してそれに該当する曜日別のtotal_billのグラフを表示します。色はcoolwarmにしています。

violinplot()

violinplot()はboxplot()と同様の処理をしますが、boxplotが変数の四分位数の範囲の定量データの分布を示したのと違い、viorinplotは、カーネル密度推定を基礎とする分布を示すという特徴があります。

曜日毎のtotal_billの分布を表示してみます。

今度はhueでカテゴリーを指定してみます。

曜日毎だけでなく、性別を分けています。

splitをTrueに設定すると、分けて表示した各レベルのバイオリンを半分つづに描画され、両データの分布を簡単に比較することができます。

男女別のデータを合わせて比較することになります。

stripplotとswarmplot

stripplot()とswarmplot()はよく似たメソッドで、1つの変数がカテゴリに属する​​場合の散布図を描画します。

stripplot()

stripplot()は、1つの変数がカテゴリに属する​​場合は散布図を描画します。ストリッププロットは単独で作成することもできますが、すべての観測結果を基にした分布を表示する場合は、ボックスプロットまたはバイオリンプロットの補完にもなります。

曜日毎のtotal_billの分布を表示してみます。

jitterを指定すると、多数の点があってそれが重なっている場合に分布を見るのが簡単になります。

ここではあまり差は出ませんでしたね。もっと直線的な表示になっていた場合は違いがわかったかもしれません。

次はこれまでと同様にhueを指定してみます。

凡例のように男女別に分類されて表示されているのがわかります。

次はdodgeをTrueに指定してみます。

重なりを避けて表示されているのがわかります。

swarmplot()

swarmplot()は重複しないようにポイントを調整して表示してくれます。

hueとdodgeを指定してみます。

凡例のように男女別に分布を分けて表示しています。

プロットの結合

ここで扱った分布視覚化メソッドを組み合わせて使います。

ここではviolinplot()とswarmplot()で結合してみます。x軸、y軸に指定するデータを揃えて次のように指定してみます。

2つが組み合わされた分布が表示されているのがわかります。

catplot

catplot()は、カテゴリーの分類データの分布を視覚化するのに最も一般的なメソッドです。パラメータを細かく指定することで表示を調整することができます。

性別で分けて棒グラフで表示してみます。

スポンサーリンク

最後に

ここではPythonの描画ライブラリseabornを使ってカテゴライズされた分類データをグラフにプロットしてみました。

ここでもseabornに用意されているデータセットをload_dataset()を使って読み込んでグラフを描画してみました。

ここでは、catplot()、boxplot()、violinplot()、stripplot()、swarmplot()、barplot()、countplot()を扱いました。

自宅学習はオンラインプログラミングスクールを活用!

自宅学習にはオンラインプログラミングスクールがおすすめ!

オンラインプログラミングスクールは独学でプログラミングを学習する時のデメリットを解消する仕組みが備わっています。

気になるところは…

学習がオンラインで完結するのはもちろんですが、独学ではできない質問サポートがあるかどうか。わからないことを現役のエンジニアが質問に答えてくれるといいですよね。

受講者個人に担当のメンターがつき、マンツーマンで学習の相談に乗ってくれることも必要で、ITエンジニアの世界についても伺えたりもすると幅が広がります。

オンライン面談だけでなく、チャット機能を使って気軽に質問を投げかけることができることも大切です。

また、オリジナルプロダクトの開発とサポートがコースの中に組み込まれていて、独学ではなかなか難しい実践的なスキルの習得にもつなげたい。

プログラミングをマスターした後の実際の仕事につながる転職サポートでがあると、ITエンジニアの世界に飛び込むのに不安が解消されます。

そんな豊富なメニューが揃っているおすすめのオンラインプログラミングスクールがこちらにあります。

おすすめのオンラインプログラミングスクールはこちら

TechAcademyはおすすめのオンラインプログラミングスクール!

オンラインのプログラミングスクールでは、テックアカデミーの充実度が目を見張ります。

オンラインで受講が完結するので、自宅学習でプログラミングをマスターしたい人にはテックアカデミーがおすすめです。

メンター制度も現役のプロが対応してくれます。大学生などが対応しているスクールに比べて本気度と専門性が違います。メンター制度の無いスクールもありますし、担当では無いメンターが対応するスクールもあったりするので、相談の質が違いますね。

チャットサポートもあるので、それが無いスクールに比べて相談の気軽さの違いがあります。

プロダクト開発のサポートで実践力が養われるだけでなく、どの講座を利用しても転職サポートが受けられるのはありがたい。

用意されているコースも、初心者向けのプログラミングコースから、Python、Java、PHP、iPhoneアプリ、AndroidといったITエンジニアのベースとなる主要な言語だけでなく、AI、データサイエンス、ブロックチェーン、webアプリケーションと行った実践的なコースまで用意しています。

他にも、webデザインやUI/UXデザイン、動画編集、webディレクションやwebマーケティングといったプログラミング以外での役立つコースまであります。

このようなたくさんの選択肢から自分にあったコースを選ぶことがでるのがテックアカデミーです。

コースの期間も短期間でマスターしたり、長期の受講でじっくり取り組むコースを選ぶこともできます。

複数講座のセットコースを利用することで大幅な割引が受けらるので、お得に受講することもできます。

無料体験もありますので、プログラミング学習でオンラインスクールを考えている人はTechAcademyをぜひ利用してみてください。

テックアカデミーの公式サイトはこちら

タイトルとURLをコピーしました