ゼファーネットのロゴ

パンダで直接インタラクティブなプロットを取得する

日付:

パンダで直接インタラクティブなプロットを取得する

データを使ってストーリーを伝えることは、データ サイエンティストにとって中核的な機能であり、同時に明るく魅力的なデータ ビジュアライゼーションを作成することは困難な場合があります。 このチュートリアルでは、Pandas プロット構文を使用して Plotly および Bokeh プロットを直接作成する方法を確認します。これは、静的な視覚化をインタラクティブな視覚化に変換し、分析を次のレベルに引き上げるのに役立ちます。


By パルルパンディ、H2O.ai のデータ サイエンス | 編集者 @wicds.

macrovector によって作成されたインフォ グラフィック ベクトル — www.freepik.com.

データ探索は、データ分析タスクの最も重要な側面のXNUMXつです。 視覚化ツールの膨大なカタログを使用して実行する最初のプロービングと予備チェックにより、データの性質に関する実用的な洞察が得られます。 ただし、視覚化ツールの選択は、タスク自体よりも複雑な場合があります。 一方では、使いやすいライブラリがありますが、データ内の複雑な関係を示すのにはあまり役立ちません。 次に、双方向性を提供するが、かなりの学習曲線を持っている他のものがあります。 幸い、この問題点に効果的に対処しようとするいくつかのオープンソースライブラリが作成されています。

この記事では、そのような XNUMX つのライブラリを見ていきます。 パンダボケ & カフスボタン. 誰もが慣れ親しんでいる基本的な pandas プロット構文を使用して、プロット チャートとボケ チャートを作成する方法を学びます。 この記事では、プロットの種類よりも構文に重点を置いているため、折れ線グラフ、棒グラフ、ヒストグラム、散布図、および円グラフの XNUMX つの基本的なグラフに限定します。 最初に pandas プロット ライブラリを使用してこれらの各チャートを作成し、ひねりはありますが、プロットとボケ味でそれらを再作成します。

データセットのインポート

私たちは NIFTY-50 データセット. NIFTY 50 インデックスは、 インド国立証券取引所 インドの株式市場のベンチマーク。 データセットはで公開されています Kaggle、ただし、銀行、製薬、IT、および FMCG の XNUMX つのセクターのみの株価を含むデータのサブセットを使用します。

サンプルデータセットはからダウンロードできます こちらをご覧ください。.

視覚化の目的に必要なライブラリとデータセットをインポートしましょう。

#必要なモジュールのインポートパンダをpdとしてインポートしますnumpyをnpとしてインポートしますimport matplotlib.pyplot as plt%matplotlib inline#データを読み込みますnifty_data = pd.read_csv( 'NIFTY_data_2020.csv'、parse_dates = ["Date"]、index_col = 'Date ')nifty_data.head() 

銀行、製薬、IT、およびFMCGセクターのNIFTYインデックスで構成される結合データフレーム。

また、月末ごとにデータを再サンプリング/集計することもできます。 パンダのライブラリには、 リサンプル() 時系列データをリサンプリングする関数。

nifty_data_resample = nifty_data.resample(ルール = 'M').mean() nifty_data_resample 

データフレームの準備ができたので、さまざまなプロットを介してそれらを視覚化する時が来ました。

Pandas で直接プロットする

最も簡単なプロット手法から始めましょう — pandas' プロット関数. pandas を使用してグラフをプロットするには、 。プロット() データフレームのメソッド。

構文dataframe.plot()

  プロット メソッドはmatplotlibの単純なラッパーです plt.plot()以下に示すような追加のパラメータを指定することもできます。

重要なパラメータのいくつか-------------------------------- x:ラベルまたは位置、デフォルトなしデータがDataFrame。 y:ラベル、位置、またはラベルのリスト、位置、デフォルトなしtitle:プロットに使用されるタイトルXおよびy label:x軸およびy軸のラベルに使用する名前。 figsize:figureオブジェクトのサイズを指定します。 kind:str生成するプロットの種類:-'line':ラインプロット(デフォルト)-'bar':垂直バープロット-'barh ':水平バープロット-'hist':ヒストグラム-'box ':boxplot-' kde ':カーネル密度推定プロット-'密度 ':' kde 'と同じ-'エリア ':エリアプロット-'パイ ':パイプロット-'散布図 ':散布図-'hexbin':hexbinプロット。 

パラメータとその使用法の完全なリストについては、を参照してください。 ドキュメント. それでは、さまざまなプロットを作成する方法を見てみましょう。 この記事では、各プロットの詳細については説明しません。 構文のみに焦点を当てますが、パンダの経験がある場合は一目瞭然です。 パンダの陰謀を詳しく理解するには、 この記事 参考になります。

  1. 折れ線グラフ
nifty_data.plot(title='2020年の素晴らしいインデックス値', xlabel = 'Values', figsize=(10,6); 


pandas プロットを使用したライン プロット。

  1. 散布図
nifty_data.plot(kind='scatter', x='NIFTY FMCG index', y='NIFTY Bank index', title = '2020年のNIFTY Index値の散布図', figsize=(10,6)); 

パンダをプロットした散布図。

  1. ヒストグラム
nifty_data [['NIFTY FMCG index'、 'NIFTY Bank index']]。plot(kind = 'hist'、figsize =(9,6)、bins = 30); 

パンダをプロットしたヒストグラム。

  1. 棒グラフ
nifty_data_resample.plot(kind='bar',figsize=(10,6)); 

パンダをプロットした棒グラフ。

  • 積み上げ棒グラフ
nifty_data_resample.plot(kind='barh',figsize=(10,6)); 

パンダをプロットした積み上げ棒グラフ。

  1. 円グラフ
nifty_data_resample.index=['10,6月','1月','XNUMX月','XNUMX月','XNUMX月','XNUMX月','XNUMX月'] nifty_data_resample['NIFTY銀行指数'].plot.pie(legend=False, figsize=(XNUMX),autopct='%.XNUMXf'); 

パンダがプロットした円グラフ。

これらは、パンダのデータフレームを使用して直接作成できるグラフの一部です。 ただし、これらのグラフには、ズームやパンなどのインタラクティブ機能と機能がありません。 次に、構文を少し変更するだけで、構文内のこれらの既存のグラフを完全にインタラクティブなグラフに変更しましょう。

Pandas の Bokeh バックエンド — Pandas-Bokeh でプロットします。

著者による画像。

  ぼけ味 データの視覚化に関しては、ライブラリは明らかに際立っています  パンダボケ のボケ プロット バックエンドを提供します パンダジオパンダピスパーク データフレーム。 このバックエンドは、データフレームとシリーズに plot_bokeh() メソッドを追加します。

インストール

パンダ-ボケはからインストールすることができます PyPI 、 ピップ or コンダ:

pip install pandas-bokeh または conda install -c patrikhlobil pandas-bokeh 

使用法

Pandas-Bokeh ライブラリは、Pandas、GeoPandas、または Pyspark の後にインポートする必要があります。

pd として pandas をインポートする pandas_bokeh をインポートする 

次に、プロット出力を定義する必要があります。これは、次の XNUMX つのいずれかになります。

pandas_bokeh.output_notebook() # Jupyter ノートブックにプロットを埋め込むため。 pandas_bokeh.output_file(filename) # プロットを HTML としてエクスポートするため。 

構文

これで、PandasDataFrameからプロットAPIにアクセスできるようになりました。 dataframe.plot_bokeh().

出力のプロットの詳細については、こちらのリファレンスまたは Bokeh のドキュメントを参照してください。 では、上のセクションでプロットした XNUMX 種類のプロットをすべてプロットしてみましょう。 上記で使用したのと同じデータセットを使用します。

pandas を pd としてインポートします import pandas_bokeh pandas_bokeh.output_notebook() 

  1. 折れ線グラフ
nifty_data.plot_bokeh(kind = 'line')#nifty_data.plot_bokeh.line()と同等 

pandas_bokeh を使用したライン プロット。

  1. 散布図
nifty_data.plot_bokeh.scatter(x='NIFTY FMCG インデックス'、y='NIFTY バンク インデックス'); 

pandas_bokeh による散布図。

  1. ヒストグラム
nifty_data[['NIFTY FMCG インデックス','NIFTY バンク インデックス']].plot_bokeh(kind='hist', bins=30); 

pandas_bokehのヒストグラム。

  1. 棒グラフ
nifty_data_resample.plot_bokeh(kind = 'bar'、figsize =(10,6)); 

pandas_bokeh を使用した棒グラフ。

  • 積み上げ棒グラフ
nifty_data_resample.plot_bokeh(kind='barh',stacked=True); 

pandas_bokeh を使用した積み上げ棒グラフ。

  1. 円グラフ
nifty_data_resample.index=['XNUMX月','XNUMX月','XNUMX月','XNUMX月','XNUMX月','XNUMX月','XNUMX月'] nifty_data_resample.plot_bokeh.pie(y = 'NIFTY銀行指数') 

pandas_bokeh を使用した円グラフ。

さらに、同じプロット内にネストされた複数の円グラフを作成することもできます。

nifty_data_resample.plot_bokeh.pie() 

pandas_bokeh を使用したネストされた円グラフ。

このセクションでは、パンダのプロット構文に大きな変更を加えることなく、ボケ プロットをシームレスに作成する方法について説明しました。 これで、新しいフォーマットを学ぶことなく、両方の長所を活かすことができます。

Pandas の Plotly バックエンド — カフリンクスでプロットします。

著者による画像。

データの視覚化によく使用されるもう XNUMX つのライブラリは、 プロット. plotly を使用すると、Python、R、および JavaScript でインタラクティブなチャートを作成できます。 バージョン 4.8 の時点で、Plotly は Plotly Express を搭載 これは、視覚化のようなプロットを作成するためにプロットをインポートする必要さえないことを意味します。

ただし、ここで私が言及したいライブラリは、陰謀を表現したものではなく、Plotly と呼ばれる独立したサードパーティのラッパー ライブラリです。 カフスカフリンクスの美しさは、汎用性が高く、機能性が高く、パンダのプロットに似た API を備えていることです。 つまり、追加する必要があるのは .iplot() グラフをプロットするための Pandas データフレームへのメソッド。

インストール

カフリンクスを取り付ける前に、計画的に取り付けられていることを確認してください。 読んだ この 指示のガイド。

pip インストール カフリンクス 

使用法

  倉庫 始めるのに役立つ例とノートブックがたくさんあります。

import pandas as pd import カフリンクス as cf from IPython.display import display,HTML #すべてのチャートを公開し、グローバルテーマを設定する cf.set_config_file(sharing='public',theme='white',offline=True) 

それだけです。 これで、pandas の簡単さで、plotly の力でビジュアライゼーションを作成できるようになりました。 構文の唯一の変更は、 dataframe.iplot().

  1. 折れ線グラフ
nifty_data.iplot(kind='line') 

カフスボタン付きのライン プロット。

  1. 散布図

プロットについて言及する必要があります モード 散布図の作成中の散布トレース用。 モードは、線、マーカー、テキスト、またはそれらのいずれかの組み合わせです。

nifty_data.iplot(kind='scatter',x='NIFTY FMCG インデックス', y='NIFTY バンク インデックス',mode='markers'); 

カフスボタン付きの散布図。

  1. ヒストグラム
nifty_data[['NIFTY FMCG インデックス','NIFTY バンク インデックス']].iplot(kind='hist', bins=30); 

カフスボタン付きのヒストグラム。

  1. 棒グラフ
nifty_data_resample.iplot(kind='bar'); 

カフスボタン付きのバープロット。

  • 積み上げ棒グラフ
nifty_data_resample.iplot(kind='barh',barmode = 'stack'); 

カフリンクス付きの積み上げ棒グラフ。

  1. 円グラフ
nifty_data_resample.index = ['Jan'、 'Feb'、 'March'、 'Apr'、 'May'、 'June'、 'July'] nifty_data_resample.reset_index()。iplot(kind = 'pie'、labels = ' index '、values =' NIFTY Bank index ') 

カフスボタン付きの円グラフ。

Cufflinks ライブラリは、plotly 内で plotly のパワーを取得する簡単な方法を提供します。 構文の類似性も利点の XNUMX つです。

まとめ

Bokeh または Plotly プロットは、情報全体を伝える上で自給自足です。 選択と好みに基づいて、視覚化をより直感的かつインタラクティブにするという主な目的に焦点を合わせながら、両方またはいずれかを選択できます。

元の。 許可を得て転載。

関連する

コインスマート。 BesteBitcoin-ヨーロッパのBörse
出典: https://www.kdnuggets.com/2021/06/interactive-plots-directly-pandas.html

スポット画像

最新のインテリジェンス

スポット画像