Python(Pandas+Plotly)で散布図を並べて出力する方法を紹介【色コード指定可】【サンプルコードあり】

3 min

データ分析はデータの特徴を捉えるところから始めます

Pandas では少しの工夫で特徴を捉えるためのデータを出力することが出来ます

しかし、テキストデータだけではどうもイメージがし辛いと思います。

本記事では、Pandas の DataFrame をインプット情報として plotly で散布図を並べて出力する方法を紹介します。

広告_零号機

散布図を並べて出力するサンプルコード(Colab で利用可能)

サンプルデータセット

社会科学のためのデータ分析」で用いられているオープンデータセットでの使用例を紹介します。

データの特徴の確認方法については下記をご参考ください。

出力イメージ

DataFrame の量的データの散布図を並べて出力することが出来ます。

出力イメージ

散布図で可視化することで下記のことが読み取れます

散布図から、第112議会では(第80議会と対比して)民主党と共和党のイデオロギー的な違いを説明する上で、人種的リベラル/保守の次元はもはや重要ではないことがわかる。経済の次元が党派的な違いを主として説明するようであり、それに比べて人種の次元に関する民主党と共和党の違いは目立たない。

「社会科学のためのデータ分析入門(上)」3測定 3.6 「2変量関係の要約」

コード

下記コードを Google Colaboratory のセルにコピペして実行することで直ぐに使えます。

import pandas as pd
from plotly.subplots import make_subplots
import plotly.graph_objects as go

def congress_go_scatter(_df, _congress, _party, _color):
  return go.Scatter(
      x=_df[(_df["congress"]==_congress) & (_df["party"]==_party)]['dwnom1'],
      y=_df[(_df["congress"]==_congress) & (_df["party"]==_party)]['dwnom2'],
      mode='markers',
      marker_color=_color,
      name=f"第{_congress}議会_" + _party
    )

df_congress = pd.read_csv('https://raw.githubusercontent.com/kosukeimai/qss/master/MEASUREMENT/congress.csv')

fig = make_subplots(
  rows=1,
  cols=2,
  subplot_titles=("第80議会", "第112議会")
)
fig.add_trace(congress_go_scatter(df_congress, 80, "Democrat", "#F15B5B"), row=1, col=1) 
fig.add_trace(congress_go_scatter(df_congress, 80, "Republican", "#0067C0"), row=1, col=1) 
fig.add_trace(congress_go_scatter(df_congress, 112, "Democrat", "#F15B5B"), row=1, col=2) 
fig.add_trace(congress_go_scatter(df_congress, 112, "Republican", "#0067C0"), row=1, col=2) 

fig.update_xaxes(title_text="経済的リベラル/保守", range=[-1.5, 1.5], row=1, col=1)
fig.update_xaxes(title_text="経済的リベラル/保守", range=[-1.5, 1.5], row=1, col=2)
fig.update_yaxes(title_text="人種的リベラル/保守", range=[-1.5, 1.5], row=1, col=1)
fig.update_yaxes(title_text="人種的リベラル/保守", range=[-1.5, 1.5], row=1, col=2)

fig.show()

まとめ

本記事では、Pandas の DataFrame をインプット情報として plotly で散布図を並べて出力するメソッドを紹介しました。

データ分析に関して、一つ一つ丁寧に確認したい方は下記記事をご覧ください。

合わせて下記もご参考ください。

ご参考になりましたら twitter をフォローして SNS でシェアして頂ければ幸いです。

広告_零号機-エリア2
kewton

kewton

大学院卒業後、某大手SIerで10年以上SEとして従事。
社会人3年目までに基本情報・応用情報技術者、データベーススペシャリスト、簿記3級・2級を取得。
基幹系システム・IoTシステム開発のプロジェクト経験多数。AI活用システムの企画・プロト開発経験あり。
強みは、プロマネだけでなく自身で開発も実施してきたこと。
【扱える言語】
C#、java、python、javascript、Excel VBA
【扱えるDB】
oracle、sql server、postgreSQL、mongoDB

FOLLOW

関連記事

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA