はじめに
2次元ヒストグラムの3D表示は、二次元平面上のデータ分布を立体的に可視化する手法です。通常のヒストグラムが1次元のデータ分布を表示するのに対し、2次元ヒストグラムは2つの変数の関係性と分布密度を同時に表現できます。ここでは、matplotlibのmplot3dの3Dグラフで2次元ヒストグラムを表示する方法について説明します。
コード

解説
モジュールのインポート
スタイルの適用
データとヒストグラムデータの生成
np.random.rand(2, 100) * 4 は、サイズが(2, 100)のランダムな0〜4の数値配列を生成します。x, y = とすることで、x、y それぞれが(1, 100)のサイズになります。
histogram2dでは、x、yにヒストグラム化したいデータを入力し、binsで分割数、rangeで範囲を設定します。この例では範囲が0-4、binsが4なので、ヒストグラムの区切り(xedges, yedges)はそれぞれ array([0., 1., 2., 3., 4.]) となります。
ヒストグラムの表示位置の設定
xposは棒グラフを表示する位置を設定します。xedges[:-1]は配列の最後の要素を除いた[0, 1, 2, 3]となります。indexing=’ij’を指定すると、グリッドの順序が行列形式になります。[1]
.ravel()は2次元配列を1次元に変換する関数です。ヒストグラムを表示するbar3d関数が2次元配列に対応していないため、この変換が必要になります。
zpos = 0は、z座標の0の位置から棒グラフを描画することを意味します。
dx、dyはそれぞれx軸方向とy軸方向における各棒の幅を表します。[2]
dzは棒グラフの高さを表します。この高さの値はhistogram2dで得られたhistデータであり、1次元配列に変換して使用します。
2次元ヒストグラムの表示
bar3dはx,y,zの位置、x,yの幅とzの高さを設定することで表示できます。
dx,dyを変化させた場合

binsを変化させた場合

dx=dy=0.25として、meshgridの+0.25 を+0.125としました。
zsortを変化させた場合

zsortをかえることで棒の重なり具合が変化します。
回転アニメーション
作製した図を回転させると以下のようになります。
回転アニメーションは以下の記事を参考にして作成しました。

まとめ
2次元ヒストグラムの3D表示は、複雑なデータ分布を直感的に理解するための強力なツールです。matplotlibのmplot3dモジュールを使うことで、Pythonで簡単に実装できます。データの特性に合わせてカスタマイズすることで、より効果的なデータ分析と洞察が得られるでしょう。
参考

コメント