How to plot density of binary data

I'm trying to plot either a 3D histogram, or a 2D plot with density (i.e. frequency) represented by color.
I used the hist3 command to create a density/frequency matrix (size 64x75). This matrix is created using the command: "cnt=hist3(X, [64 75])" and is calculated from raw data. My problem now is that I've created 70 matrices, representing the individual data from 70 research participants. I've averaged the density matrices across all participants, so I now have a 64x75 "average density matrix" that I need to plot. I've tried using the surf command, but I don't want a surface plot. I need bars to represent the information.
Is there a way to create either a 3D histogram, or a 2D plot with density represented by color, using the "average density matrix" that I have created? I've attached the average density matrix I'm trying to graph.
Thank you.

Risposte (2)

Image Analyst
Image Analyst il 28 Feb 2014

0 voti

Why not just display as a color image? Does it absolutely have to be a 2.5D perspective rendering of rising square bars (like a bird's eye view of downtown)?

4 Commenti

I have considered a 2D perspective using color to denote frequency. Using the surf command and looking at is from the "bottom," I get a useful figure. For teaching purposes, however, it would be helpful to have a 3D rendering of the figure.
So use bar3 like the two others suggested. Any problem with that? Is that too much like the surface plot that you created with surf() that you said you didn't like? If so, then we are really puzzled as to what you want. Can you post an example of some kind of visualization that IS like what you want?
bar3 plots zeros, which obscures the truth because when you see color, you assume that the event of interest (movement) occurred. In reality, no movement occurred, therefore there should be no color. You can see that this is the case in the "bar3" figure, which I've attached.
I would like the data in the figure to look more like the data in the "hist3" figure I've attached. Keep in mind that hist3 creates a figure from raw data, whereas I'm trying to create a 3D histogram from the density matrix, which works for surf but not for hist3. I've uploaded a density matrix file to facilitate understanding the data I'm trying to plot.
Thank you.
dpb
dpb il 3 Mar 2014
So can't you just change the 0-value locations to have white color?

Accedi per commentare.

Ryan, as you need an alternative to two dimensional graphic like @image analyst proposed, you can use bar3 command, here is an example :
bar(magic(15))

1 Commento

I have tried using the bar3 command. The problem with bar3 is that the code plots zeros, and I can't figure out how to omit plotting zeros. I've tried changing zeros to "nan." If using the surf command, changing zeros to "nan" works keeps the function from plotting zeros. This is not the case with bar3. Zeros are plotted, even though they've been changed to NAN.

Accedi per commentare.

Categorie

Richiesto:

il 28 Feb 2014

Commentato:

dpb
il 3 Mar 2014

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by