データ可視化の基礎を学んだ後、次に進むステップとして、よりインタラクティブで高度な可視化が重要です。従来の静的なグラフに加えて、動的でユーザーが操作できる可視化は、データの分析や共有をさらに豊かにします。この章では、pandasやPlotlyなどのツールを使い、インタラクティブなグラフの作成方法や、より高度な可視化テクニックを学びます。
5.1 pandasを使ったインタラクティブな可視化
Pythonのpandasライブラリは、データ処理に特化しているだけでなく、簡単な可視化もサポートしています。まずは、pandasを使った基本的なプロットと、そこから発展させたインタラクティブなグラフを紹介します。
pandasではplot()
メソッドを使用して、直接データフレームからグラフを作成できます。例えば、以下のようなデータがあったとします。
import pandas as pd
import matplotlib.pyplot as plt
# サンプルデータ作成
data = {'年': [2015, 2016, 2017, 2018, 2019, 2020],
'売上': [100, 150, 200, 250, 300, 350]}
df = pd.DataFrame(data)
# pandasで簡単な折れ線グラフを作成
df.plot(x='年', y='売上', kind='line', title='年間売上')
plt.show()
このようにして、データの基本的な可視化を行うことができます。pandasのplot()
はmatplotlibを基盤にしているため、インタラクティブ性には限界がありますが、簡易な可視化には非常に便利です。
5.2 Plotlyを使ったインタラクティブなグラフ
pandasを用いた基本的なグラフを踏まえた上で、次にインタラクティブなグラフを作成するためのライブラリ、Plotlyに進みましょう。Plotlyは、ブラウザ上で操作できるインタラクティブなグラフを生成できる強力なツールです。これにより、データを動的に探索できるようになり、ユーザーはズームイン・ズームアウト、データポイントの詳細表示などを簡単に行えます。
まず、Plotlyのインストールが必要です。
pip install plotly
次に、pandasのデータフレームをPlotlyで可視化する例を見ていきます。今回は、pandasのデータをそのまま使用し、Plotlyで折れ線グラフを作成してみましょう。
import plotly.express as px
# pandasのデータフレームを使ってPlotlyで折れ線グラフを作成
fig = px.line(df, x='年', y='売上', title='年間売上')
fig.show()
このコードにより、インタラクティブな折れ線グラフが表示されます。Plotlyでは、デフォルトでグラフがインタラクティブになり、グラフ上のデータポイントにカーソルを合わせると、詳細な情報が表示されます。また、ズームインやズームアウト、グラフの移動なども可能です。
5.3 インタラクティブな棒グラフ
次に、Plotlyを使った別のインタラクティブグラフ、棒グラフを作成してみましょう。
# pandasのデータフレームを使ってPlotlyで棒グラフを作成
fig = px.bar(df, x='年', y='売上', title='年間売上(棒グラフ)')
fig.show()
この棒グラフも同様に、ユーザーは棒にカーソルを合わせると数値を確認したり、グラフを動かしたりできます。棒グラフは、カテゴリデータの比較に適しており、売上や人口、カテゴリ別の売上シェアなどのデータに対して効果的です。
5.4 複数軸を使った可視化
次に、複数の軸を使ったグラフの作成方法を紹介します。複数の変数を一度に可視化することで、データの相関関係やトレンドをより深く理解できます。以下は、複数のデータ列を同時に可視化する例です。
# サンプルデータ作成
data = {'年': [2015, 2016, 2017, 2018, 2019, 2020],
'売上': [100, 150, 200, 250, 300, 350],
'利益': [20, 30, 50, 70, 90, 110]}
df = pd.DataFrame(data)
# 利益と売上の複合グラフを作成
fig = px.line(df, x='年', y=['売上', '利益'], title='年間売上と利益の推移')
fig.show()
この例では、「売上」と「利益」の2つのデータセットを一度に表示することで、両者のトレンドや相関を視覚的に把握できます。インタラクティブなグラフの場合、特定のデータセットの表示・非表示を切り替えることも可能です。
5.5 より高度な可視化テクニック
さらに高度なテクニックとして、次に紹介するのは、3Dプロットや地図ベースの可視化です。これらは、通常の2Dグラフでは表現しきれない複雑なデータを視覚的に表現するのに役立ちます。
3Dプロット
Plotlyでは、簡単に3Dプロットを作成できます。以下は、3D散布図の例です。
import plotly.graph_objects as go
# サンプルデータ作成
data_3d = {'x': [1, 2, 3, 4, 5],
'y': [10, 11, 12, 13, 14],
'z': [5, 6, 7, 8, 9]}
df_3d = pd.DataFrame(data_3d)
# 3D散布図を作成
fig = go.Figure(data=[go.Scatter3d(x=df_3d['x'], y=df_3d['y'], z=df_3d['z'], mode='markers')])
fig.update_layout(title='3D散布図')
fig.show()
この3Dプロットは、複数の次元を持つデータを視覚的に分析するのに適しています。ユーザーはグラフを回転させたり、視点を変更してデータの関係性を様々な角度から調べることができます。
地図を使った可視化
地理データを視覚化する場合、Plotlyのpx.choropleth()
を使って地図ベースの可視化が可能です。以下は、国別のデータを地図で表示する例です。
# Plotlyを使った地図ベースの可視化
fig = px.choropleth(df, locations="国", locationmode="country names", color="売上", title="国別の売上")
fig.show()
地図を使った可視化は、地理的な分布を視覚的に理解するために非常に有効です。例えば、国や地域ごとの売上や人口、GDPなどのデータを直感的に把握するのに役立ちます。
5.6 インタラクティブ可視化の応用
インタラクティブなグラフの応用は、企業のダッシュボードやデータ分析ツール、さらには研究発表の場まで幅広く活用されています。Plotlyを使えば、複雑なデータもユーザーが直感的に操作できる形で提供できるため、データのインサイトを引き出しやすくなります。
たとえば、企業の売上データを部門別に分けて表示し、ユーザーが自分の興味のある部門をクリックすることで、特定の部門に関する詳細なデータを表示するようなダッシュボードを作成することも可能です。
まとめ
この章では、pandasを使った基本的な可視化から始まり、Plotlyを用いたインタラクティブなグラフの作成方法、さらには3Dプロットや地図ベースの可視化など、より高度な可視化手法を学びました。インタラクティブな可視化は、静的なグラフに比べてデータ分析の自由度を大幅に高め、視覚的にデータを操作しながらその本質に迫る手助けをします。
初心者におすすめ!プログラミングスクールのススメ
未経験でも気軽に!サブスク型プログラミングスクール【Freeks】
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学の挫折率、驚きの87.5%!
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
有料と無料、スクールの違いは?
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
- 受講条件が異なる
- 学べるスキルやカリキュラム内容が異なる
- 就職や転職のサポート内容が異なる
どちらが自分に合っているか、よく考えて選ぶのが大事です。
サブスク型プログラミングスクール『FREEKS(フリークス)』に注目!
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
- 未経験者向けのわかりやすいカリキュラム
- 経験豊富なエンジニアのサポート
- オンラインで自分のペースで学習可能
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
終了後は副業もサポート!
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓