<divid="unreleased-message"> You are reading an old version of the documentation (v2.2.0). For the latest version see <ahref="https://matplotlib.org/stable/gallery/mplot3d/hist3d.html">https://matplotlib.org/stable/gallery/mplot3d/hist3d.html</a></div>
<spanid="sphx-glr-gallery-mplot3d-hist3d-py"></span><h1>Create 3D histogram of 2D data<aclass="headerlink" href="#create-3d-histogram-of-2d-data" title="Permalink to this headline">¶</a></h1>
<p>Demo of a histogram for 2 dimensional data as a bar graph in 3D.</p>
<spanclass="c1"># Fixing random state for reproducibility</span>
<ahref="https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.seed.html#numpy.random.seed" title="View documentation for numpy.random.seed"><spanclass="n">np</span><spanclass="o">.</span><spanclass="n">random</span><spanclass="o">.</span><spanclass="n">seed</span></a><spanclass="p">(</span><spanclass="mi">19680801</span><spanclass="p">)</span>
<spanclass="n">fig</span><spanclass="o">=</span><ahref="../../api/_as_gen/matplotlib.pyplot.figure.html#matplotlib.pyplot.figure" title="View documentation for matplotlib.pyplot.figure"><spanclass="n">plt</span><spanclass="o">.</span><spanclass="n">figure</span></a><spanclass="p">()</span>
<spanclass="n">x</span><spanclass="p">,</span><spanclass="n">y</span><spanclass="o">=</span><ahref="https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.rand.html#numpy.random.rand" title="View documentation for numpy.random.rand"><spanclass="n">np</span><spanclass="o">.</span><spanclass="n">random</span><spanclass="o">.</span><spanclass="n">rand</span></a><spanclass="p">(</span><spanclass="mi">2</span><spanclass="p">,</span><spanclass="mi">100</span><spanclass="p">)</span><spanclass="o">*</span><spanclass="mi">4</span>
<spanclass="n">hist</span><spanclass="p">,</span><spanclass="n">xedges</span><spanclass="p">,</span><spanclass="n">yedges</span><spanclass="o">=</span><ahref="https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram2d.html#numpy.histogram2d" title="View documentation for numpy.histogram2d"><spanclass="n">np</span><spanclass="o">.</span><spanclass="n">histogram2d</span></a><spanclass="p">(</span><spanclass="n">x</span><spanclass="p">,</span><spanclass="n">y</span><spanclass="p">,</span><spanclass="n">bins</span><spanclass="o">=</span><spanclass="mi">4</span><spanclass="p">,</span><spanclass="nb">range</span><spanclass="o">=</span><spanclass="p">[[</span><spanclass="mi">0</span><spanclass="p">,</span><spanclass="mi">4</span><spanclass="p">],</span><spanclass="p">[</span><spanclass="mi">0</span><spanclass="p">,</span><spanclass="mi">4</span><spanclass="p">]])</span>
<spanclass="c1"># Construct arrays for the anchor positions of the 16 bars.</span>
<spanclass="c1"># Note: np.meshgrid gives arrays in (ny, nx) so we use 'F' to flatten xpos,</span>
<spanclass="c1"># ypos in column-major order. For numpy >= 1.7, we could instead call meshgrid</span>
<spanclass="c1"># with indexing='ij'.</span>
<spanclass="n">xpos</span><spanclass="p">,</span><spanclass="n">ypos</span><spanclass="o">=</span><ahref="https://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html#numpy.meshgrid" title="View documentation for numpy.meshgrid"><spanclass="n">np</span><spanclass="o">.</span><spanclass="n">meshgrid</span></a><spanclass="p">(</span><spanclass="n">xedges</span><spanclass="p">[:</span><spanclass="o">-</span><spanclass="mi">1</span><spanclass="p">]</span><spanclass="o">+</span><spanclass="mf">0.25</span><spanclass="p">,</span><spanclass="n">yedges</span><spanclass="p">[:</span><spanclass="o">-</span><spanclass="mi">1</span><spanclass="p">]</span><spanclass="o">+</span><spanclass="mf">0.25</span><spanclass="p">)</span>
<spanclass="n">zpos</span><spanclass="o">=</span><ahref="https://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros_like.html#numpy.zeros_like" title="View documentation for numpy.zeros_like"><spanclass="n">np</span><spanclass="o">.</span><spanclass="n">zeros_like</span></a><spanclass="p">(</span><spanclass="n">xpos</span><spanclass="p">)</span>
<spanclass="c1"># Construct arrays with the dimensions for the 16 bars.</span>
<spanclass="n">dx</span><spanclass="o">=</span><spanclass="mf">0.5</span><spanclass="o">*</span><ahref="https://docs.scipy.org/doc/numpy/reference/generated/numpy.ones_like.html#numpy.ones_like" title="View documentation for numpy.ones_like"><spanclass="n">np</span><spanclass="o">.</span><spanclass="n">ones_like</span></a><spanclass="p">(</span><spanclass="n">zpos</span><spanclass="p">)</span>
<ahref="../../api/_as_gen/matplotlib.pyplot.show.html#matplotlib.pyplot.show" title="View documentation for matplotlib.pyplot.show"><spanclass="n">plt</span><spanclass="o">.</span><spanclass="n">show</span></a><spanclass="p">()</span>