[matplotlib 3D] 2.三次元グラフに棒グラフを並べて表示

matplotlib 3D

はじめに

matplotlibで3D棒グラフを作成するには、主にax.bar3d()関数を使用します。この関数では、各棒の位置(x、y座標)と高さ(z座標)、そして棒の幅と奥行きを指定します。ここでは、3次元グラフ上に棒グラフを並列させて表示する方法について説明します。

コード

解説

モジュールのインポート

バージョン

スタイルの適用

棒グラフの設定と表示

複数の要素を同時に処理したい場合は、Pythonの組み込み関数zipを使用します。[1]

この例では、yticksの値3が’m’(マゼンタ)に対応しています。

コード内では、np.arange(10)で0〜9までの連続した数列を生成し、np.random.rand(10)で0〜1の範囲の乱数を10個作成しています。

cs = [c] * len(x)という処理により、変数cはcolorsの値を参照し、同じ色を表す文字列の配列が生成されます。

cs[9] = ‘k’の設定により、配列csの10番目(インデックス9)の要素が’k’(黒)に変更されるため、各色グループの最後は黒色で表示されます。マゼンタを使用した場合、次のようになります:

棒グラフはax.bar(x, y, zs=k, zdir=’y’, color=cs, alpha=0.7)で表示できます。

zs=kとzdir=’y’のパラメータを使用することで、y軸方向に棒グラフをオフセットさせて並べることが可能です。

軸の設定

X軸方向に棒グラフを並べる

zdir=’x’とすればX軸方向に棒グラフを並べることができます。

回転アニメーション

作製した図を回転させると以下のようになります。

回転アニメーションは以下の記事を参考にして作成しました。

[matplotlib 3D] 14. 3Dグラフの回転アニメーション
matplotlibのmplot3dを使用して3Dグラフの回転アニメーションを作成する方法を解説します。動画として保存する手順や回転角度の制御など、3Dビジュアライゼーションを動的に表現するための基本テクニックを紹介します。
コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

応用例と実践的なヒント

3D棒グラフを効果的に使用するためのヒントをいくつか紹介します。

  • 視点の調整: ax.view_init(elev, azim)を使用して最適な視点を見つけましょう。
  • 透明度の活用: alphaパラメータを調整して、データの重なりを視覚化しやすくします。
  • グリッド線: ax.grid(True)でグリッド線を表示し、空間的な把握を助けます。
  • アニメーション: 時系列データの場合、アニメーションを追加することでデータの変化を表現できます。

3D棒グラフは特に多次元データの比較や時系列データの可視化に有効です。適切な実装により、複雑なデータでも直感的に理解できるビジュアライゼーションが可能になります。

参考

Python, zip関数の使い方: 複数のリストの要素をまとめて取得 | note.nkmk.me
Pythonの組み込み関数zip()は複数のイテラブルオブジェクト(リストやタプルなど)の要素をまとめる関数。forループで複数のリストの要素を取得する際などに使う。 組み込み関数 - zip() — Python 3.11.3 ドキュメ ...
Create 2D bar graphs in different planes — Matplotlib 3.1.0 documentation

コメント