私がこれまで matplotlib を使用してきた理由は、その複雑な構文を学ぶためであり、そのために何百時間もの時間コストが「費やされ」てきました。そのため、私は「日付のフォーマット」や「2 番目の Y 軸の追加」の方法を StackOverflow で検索することを数え切れないほど深夜に費やすことになりました。
しかし、現在では、使いやすく、文書が充実しており、強力なオープンソースの Python プロット ライブラリである Plotly など、より良い選択肢があります。今日は、非常に単純な (たった 1 行でも!) コードでより良いチャートを描画する方法を詳しく説明します。
この記事のすべてのコードは Github でオープンソース化されており、すべてのグラフはインタラクティブです。表示するには Jupyter ノートブックを使用してください。
(Github ソース コード アドレス: https://github.com/WillKoehrsen/Data-Analysis/blob/master/plotly/Plotly Whirlwind Introduction.ipynb)
(plotly で描画されたチャートの例。画像ソース:plot.ly)
plotly の Python パッケージは、plot.js をベースにしたオープン ソース コード ライブラリです。 d3.jsに基づいています。実際に使用するのは、plotly をカプセル化するカフリンクスと呼ばれるライブラリです。これにより、plotly と Pandas データ テーブルを連携して使用することが容易になります。
*注: Plotly 自体は、いくつかの異なる製品とオープンソース ツールセットを備えた視覚化テクノロジー企業です。 Plotly の Python ライブラリは無料で使用できます。オフライン モードでは無制限にチャートを作成できます。オンライン モードでは、Plotly の共有サービスを使用するため、生成および共有できるチャートは 25 個までです。
この記事のすべての視覚化チャートは、オフライン モードでプロットリー カフリンクス ライブラリを使用して、Jupyter Notebook で完成されました。 pip install cufflinks Lotly を使用してインストールを完了した後、次のコードを使用して Jupyter でのインポートを完了できます。
単一変数分布: ヒストグラムと箱ひげ図チャート
一変量分析チャートはデータ分析を開始する際の標準的な手法であることが多く、ヒストグラムは基本的に一変量分布分析に必要なチャートの 1 つです (ただし、まだいくつかの欠点があります)。
ブログ投稿の「いいね!」の合計数を例として取り上げて (元のデータについては Github を参照: https://github.com/WillKoehrsen/Data-Analysis/tree/master/medium)、簡単なインタラクティブなヒストグラム :
(コード内の df は標準の Pandas データフレーム オブジェクトです)
(plotly を使用して作成されたインタラクションカフリンクス ヒストグラム)
すでに matplotlib に慣れている学生の場合は、さらに 1 文字入力するだけ (.plot を .iplot に変更する) だけで、より美しく見えるインタラクティブなグラフが得られます。画像上の要素をクリックすると、詳細情報が表示され、ズームインおよびズームアウトし、(次で説明します) 画像の特定部分のフィルタリングなどの機能が強調表示されます。
積み上げ縦棒グラフを描画したい場合は、これを行うだけです。
インタラクティブなグラフの利点は、データを探索し、分析のためにサブ項目を自由に分割できることです。箱ひげ図は多くの情報を提供しますが、特定の値が見えないと、多くの情報を見逃してしまう可能性があります。
散布図は、ほとんどの分析の中核となる内容であり、時間の経過に伴う 1 つの変数の変化、または変数間の関係における 2 つ (またはそれ以上) の変化を確認できます。
時系列分析
現実の世界では、データのかなりの部分に時間要素が含まれています。幸いなことに、plotly カフリンクスには、時系列の視覚分析をサポートする機能が組み込まれています。
私が「Towards Data Science」Web サイトに公開した記事データを例に、公開時間を指標としてデータセットを構築し、記事の人気がどのように変化するかを見てみましょう。
(テキスト注釈付き散布図)
以下のコードでは、3 番目のカテゴリ変数によって 2 変数の散布図に色を付けます。もう少し複雑な対数軸について説明します。これを実現するには、plotly のレイアウト パラメーターを指定し (さまざまなレイアウトについては、公式ドキュメント https://plot.ly/python/reference/ を参照してください)、ポイントのサイズ (サイズ パラメーター) と数値変数read_ratio(読み取り率)がバインドされており、数値が大きいほどバブルのサイズが大きくなります。
もっと複雑にしたい場合は (詳細は Github のソース コードを参照)、1 つの画像に 4 つを詰め込むこともできます。 ! (ただし、実際にこれを行うことはお勧めしません)
#以前と同様に、パンダとプロットカフリンクスを組み合わせて、多くの便利なグラフを作成できます:
# 公式ドキュメントまたはソース コードを確認することをお勧めします。これらには、より多くの例と関数インスタンスが含まれています。わずか 1 ~ 2 行のコードで、元の対話型機能を維持しながら、テキスト注釈、補助線、最適線などの便利な要素をグラフに追加できます。
散布図行列
多くの異なる変数間の関係を調べたい場合は、散布図行列 (SPLOM とも呼ばれる) が最適です。
複数の数値変数間の関係を反映するために、それらの相関関係を計算し、ラベル付きヒート マップの形式で視覚化できます:
無限の種類のグラフに加えて、Cufflinks にはさまざまな色付けテーマも用意されており、異なるグラフ スタイルを簡単に切り替えることができます。次の 2 つの図は、それぞれ「space」テーマと「ggplot」テーマです。
以上が強力なオープンソース Python 描画ライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。