【Python】グラフ描画ライブラリがありすぎて存在の認知すらできないのでChatGPTに聞きまくってみた

## はじめに
Pythonのグラフ描画ライブラリと言えば、AatplotlibやPlotlyなどがありますが他にもありますよね？

とはいえ数が多すぎてすべてのライブラリの存在を認知すらできないというのが本音です…。

ということで、今回はChatGPT先生に世に出ているPythonのグラフ描画ライブラリについて教えていただきました。

## Prompt
プロンプトは以下のように投げています。
```text
pythonのグラフ描画ライブラリについて教えてください。
```

```text
さらに他にはありますか？
```

```text
さらに他にはありますか？
```
…
```text
さらに他にはありますか？
```

このように何回も聞いて、全部出したよ！と言ってくれるところまで聞いてみました。

## 結果
聞いた結果挙げられたものを羅列します。
途中で複数回答えてきたライブラリもありましたが、それらは1回だけ挙げています。(といいつつ重複を除けていないものもあるかもしれません)
また、プチ解説含めハルシネーションが入っているかも…。

:::note warn
ChatGPT含む生成AIの回答はハルシネーション(嘘、実在しないもの)を含む可能性があるため、今回羅列したものの中には存在しないものがあるかもしれません。
※調査する元気がありませんでした。申し訳ございません。
:::


1. Matplotlib:
    * Pythonのデータ可視化ライブラリの中で最も広く使用されています。
    * 2Dチャートやプロットを作成するのに適しており、ヒストグラム、パワースペクトル、エラーチャートなど様々な種類のグラフをサポートしています。
    * 高度にカスタマイズ可能で、細かい部分の調整が可能です。

1. Seaborn:
    * Matplotlibに基づいており、より美しいデザインの統計グラフを簡単に作成することができます。
    * データのパターンを簡単に視覚化できるように設計されており、カラーパレットの選択、グリッド表示の機能などがあります。

1. Plotly:
    * インタラクティブなグラフを作成するのに適しています。
    * オンラインでもオフラインでも利用可能で、Webにも簡単に組み込むことができます。
    * ダッシュボードやアプリケーションへの統合も容易です。

1. Bokeh:
    * インタラクティブなプロットを簡単に作成できることを目指して設計されたライブラリです。
    * 大規模なデータセットのリアルタイムデータ可視化に最適です。
    * HTMLとJavaScriptを使用してWebブラウザで直接表示されるグラフを生成します。

1. Altair:
    * データの視覚的表現をシンプルなAPIで簡単に作成することができる宣言的な統計視覚化ライブラリです。
    * ビギナーにも扱いやすく、コードの記述量が少なくて済むのが特徴です。

1. ggplot:
    * Rのggplot2をベースにしたライブラリで、統計グラフの作成に適しています。
    * 「文法に基づくグラフィックス」というコンセプトを採用しており、データのマッピングから視覚的な表現までを直感的に行えます。

1. Pygal:
    * SVGフォーマットのグラフィックを生成するためのライブラリです。
    * Web上でスケーラブルなグラフィックを簡単に埋め込むことができ、パフォーマンスも良好です。

1. Geopandas:
    * 地理空間データの操作と可視化に特化したライブラリです。
    * 内部的にMatplotlibを利用して地理データをマップ上にプロットできますが、Geopandas自体が空間データの処理に特化しているため、地図ベースの可視化が得意です。

1. NetworkX:
    * ネットワーク構造を分析し、可視化するためのライブラリです。
    * グラフ理論のデータ構造と分析ツールを提供し、複雑なネットワークの可視化と分析が可能です。

1. Holoviews:
    * 高レベルのデータ可視化インターフェイスを提供するライブラリで、データの探索的分析に適しています。
    * BokehやMatplotlibと組み合わせて使用することで、よりリッチなインタラクティブな可視化が可能になります。

1. Vispy:
    * OpenGLを利用して高性能な2Dおよび3Dビジュアライゼーションを実現するライブラリです。
    * 大規模なデータセットやリアルタイムデータのビジュアライゼーションに適しており、科学的な応用に特に有用です。

1. Mayavi:
    * 3D科学データの可視化を専門とするライブラリで、VTK(Visualization Toolkit)を基に構築されています。
    * 複雑な3Dシーンの構築とレンダリングが可能で、科学技術計算の分野でよく使用されます。

1. Dash:
    * ウェブベースのインタラクティブなアプリケーションを構築するためのフレームワークであり、Plotlyを基にしています。
    * データ可視化だけでなく、ユーザーインターフェースのカスタマイズやインタラクティビティの統合が可能です。

1. Glumpy:
    * OpenGLを使用して高品質で効率的な2Dおよび3Dビジュアライゼーションを提供するライブラリです。
    * Vispyと同様に、大規模なデータセットの可視化やリアルタイムのデータ処理に適しています。

1. MPL3D:
    * Matplotlibの3Dプロット機能を拡張したライブラリで、3Dデータの可視化に特化しています。
    * 簡単に3D散布図や曲面を作成することができます。

1. Vincent:
    * Vega（可視化文法）に基づいてデータをビジュアライゼーションするためのライブラリです。
    * JSON構造を使用してPythonデータをウェブベースのビジュアライゼーションに変換することができます。

1. Bqplot:
    * Jupyter Notebook内で対話式のプロットを作成することを目的とした、D3.jsベースのライブラリです。
    * インタラクティブなプロットが必要なデータ分析や教育目的に適しています。

1. Pydeck:
    * Deck.glをPythonから利用するためのライブラリで、大規模な地理空間データのビジュアライゼーションに特化しています。
    * 地図上にデータを視覚化することができ、インタラクティブな3Dビジュアライゼーションが可能です。

1. Lightning:
    * ビジュアライゼーションとインタラクティブなデータ分析のためのフレームワークです。
    * サーバーに基づいており、多様な可視化オプションを提供します。

1. Perspective:
    * リアルタイムのデータストリームのインタラクティブな視覚化を目的としたウェブベースのPythonライブラリです。
    * 大規模なデータセットの探索と分析に適しており、特に金融業界での利用が見られます。

1. Cartopy:
    * 地理空間データの可視化に特化したライブラリで、Matplotlibの上に構築されています。
    * 地図投影や地理空間の操作が容易で、地理的なデータセットの可視化に適しています。

1. Folium:
    * PythonデータをLeaflet.jsマップに簡単に統合できるライブラリです。
    * インタラクティブな地図を作成し、Webページに埋め込むことができます。

1. PyQtGraph:
    * PyQtやPySideと統合される高速なグラフィックスおよびGUIツールキットです。
    * リアルタイムのアプリケーションや科学的なグラフィックスが求められる場面での使用に適しています。

1. Gnuplot.py:
    * 人気のあるグラフィックスツールであるGnuplotをPythonから利用するためのインターフェースです。
    * 複雑な数学的関数やデータのプロットに使用されます。

1. Graph-tool:
    * 効率的なネットワーク分析と可視化を行うためのPythonライブラリです。
    * 大規模なネットワークデータの分析とビジュアライゼーションに特に強力です。

1. Missingno:
    * 欠損データを視覚化するためのライブラリです。
    * データセット内の欠損値の分布やパターンを把握するのに役立ちます。

1. Leather:
    * シンプルなグラフに焦点を当てたライブラリで、SVGフォーマットで出力します。
    * シンプルなライングラフや散布図に適しています。

1. Toyplot:
    * 交互に利用可能なプロットと統計図を提供する、比較的新しいライブラリです。
    * 教育目的やプレゼンテーションに向いています。

1. Pygraphviz:
    * Graphvizの力を利用してグラフを作成および操作します。

1. Rich:
    * テキストやテーブル、プログレスバー、マークアップなどを美しくレンダリングするためのライブラリですが、基本的なバーグラフや線グラフもサポートしています。
    * コンソールベースのアプリケーションで視覚的要素を向上させたい場合に便利です。

1. Termgraph:
    * コマンドラインインターフェースで動作する簡単なバーグラフや色分けされたグラフを作成することができるライブラリです。
    * 小規模なデータセットのクイックな可視化に適しています。

1. Asciiplotlib:
    * コマンドラインで動作するプロットライブラリで、ASCIIアートでグラフを表示します。
    * シンプルなテキストベースの環境でデータを視覚化したいときに使います。

1. PyCairo:
    2* Dベクターグラフィックスを操作し、レンダリングするためのライブラリで、CairoグラフィックスライブラリのPythonバインディングです。
    * 複雑なカスタムグラフィックスとアニメーションの作成に適しています。

1. Plotnine:
    * Rのggplot2に強く影響を受けたグラフ作成ライブラリです。
    * データの視覚的な解析に適しており、データサイエンスや統計分析において直感的なグラフ作成が可能です。

1. Datashader:
    * 大規模なデータセットのための可視化ライブラリで、特に数百万から数十億のデータポイントを効率的にプロットする能力があります。
    * データ密度と分布を捉えることに特化しており、ビッグデータの可視化に最適です。

1. GooPyCharts:
    * Google Charts APIにインスパイアされた簡単なPythonグラフィックライブラリです。
    * シンプルな構文で基本的なグラフをすぐに作成でき、Jupyterノートブックでの使用に適しています。

1. mpld3:
    * Matplotlibで生成されたプロットをインタラクティブなHTML5に変換するためのライブラリです。
    * WebベースのプロジェクトでPythonのプロットを利用したい場合に適しています。

1. Chaco:
    * エナソート社によって開発されたグラフィックスライブラリで、インタラクティブなプロットニーズに対応しています。
    * 大規模なデータセットのインタラクティブな可視化を行う科学技術アプリケーション向けに設計されています。

1. PyX:
    * PostScriptやPDF出力に適した描画ライブラリです。
    * 線画、テキスト、数式の描写に強く、学術論文や図版作成に利用されます。

1. GR:
    * 高速なグラフィックスライブラリで、インタラクティブなアプリケーションや実時間データ処理アプリケーションに適しています。
    * 複数のフロントエンド言語をサポートし、多言語での使用が可能です。

1. VisiData:
    * コマンドラインベースのプログラムで、データセットの探索や分析、そして簡易的な可視化を行うことができます。
    * テキストデータの迅速な可視化や操作が可能で、データジャーナリストや分析家に人気です。

1. PyCallGraph:
    * Pythonアプリケーションのコールグラフを可視化するツールです。
    * アプリケーションの実行時に関数呼び出しを追跡し、グラフとして出力することで、コードの理解や最適化を助けます。

1. SnakeViz:
    * PythonのプロファイラーであるcProfileの出力をインタラクティブなWebベースの可視化で表示するツールです。
    * パフォーマンス分析やボトルネックの特定に役立ちます。

1. Vega:
    * VegaやVega-Lite規格を直接使用してインタラクティブなグラフを生成するためのライブラリです。
    * JSONベースの宣言的形式を使って視覚化を記述し、Webでの使用に適しています。

1. Facets:
    * Googleによって開発されたライブラリで、大規模なMLデータセットの探索に特化しています。
    * データの分布や関係性を視覚的に分析することができ、特に多次元データの探索に適しています。

1. Yellowbrick:
    * 機械学習モデルの診断を目的とした可視化ライブラリです。
    * Scikit-Learnと統合されており、モデル選択や評価、パラメータチューニングの過程で役立ちます。

1. Lifelines:
    * 生存分析およびイベントデータ分析のためのライブラリです。
    * カプラン・マイヤー生存曲線やネルソン・アーレン推定器など、生存時間データの可視化に特化しています。

1. Squarify:
    * ツリーマップの描画に特化した小規模なライブラリです。
    * 階層型データを色やサイズで区分して表示し、データの構造や割合を直感的に理解できます。

1. PyQtGraph:
    * PythonとQtの強力な組み合わせを利用し、高速でインタラクティブなビジュアライズを提供します。科学技術計算用のデータ可視化に特に適しています。

1. Silx:
    * X線データ分析を目的とした科学的データ処理と可視化のためのツールキットです。このライブラリは、特に放射光施設や中性子源での使用を想定しています。

1. Kivy:
    * モバイルアプリとマルチタッチアプリケーションのためのオープンソースPythonライブラリで、簡単なグラフィックやユーザーインターフェイス要素の描画にも使用できます。

1. Dash Bio:
    * 生物学的データやバイオインフォマティクスデータのためのDashライブラリです。分子ビューアーやシーケンスアライメントなど、特定の生物学的データタイプの可視化に適しています。

1. Pythreejs:
    * Three.js（WebGLを利用した3Dグラフィックスライブラリ）をPythonから利用するためのブリッジです。主にJupyterノートブックで3Dデータを可視化するために使用されます。

## まとめ
ChatGPT先生によってPythonのグラフ描画ライブラリが53個認知できました。
中にはそれは違うやろ！！！みたいなものも見られる気もします(Kivyはグラフ描画っていうよりGUIアプリやろ！など)がまぁ一家ということにしておきます。

他の言語でよく使用される描画ライブラリのPythonラッパーがありそうな雰囲気のある名前もあったりして"へ～！"と思ったりしました。

皆さんも気をひかれる名前のものとかがあれば見てみるのも悪くないのでしょうか。

:::note warn
ChatGPT含む生成AIの回答はハルシネーション(嘘、実在しないもの)を含む可能性があるため、今回羅列したものの中には存在しないものがあるかもしれません。
※調査する元気がありませんでした。申し訳ございません。
:::