Want to plot a matrix as a 3D histogram or bar chart.

17 次查看(过去 30 天)
I have a matrix (A) of count values. It counts the number of times event (x,y) occurs during a process, where x & y are integer metrics with pre-defined, non-equal ranges (thus A is not square). That is, every time event (9,10) occurs, the accumulator (counter) array is incremented: A(9,10)=A(9,10)+1. I want to plot out the matrix A as a histogram (or bar chart) to examine and analyze the distribution of events. I am aware of bar3 and some MATLAB histogram plotting scripts but I don't see how to make them work, for this application. (I did search the download section here but didn't find what I want.)

采纳的回答

Image Analyst
Image Analyst 2016-9-15
With a size of 128 by 1024, you might be better off using surf() than bar3(), or simply viewing it as an image instead of a 2.5-D rendering (a 3-D rendering of your 2-D array onto your 2-D flat screen monitor).

更多回答(3 个)

Thorsten
Thorsten 2016-9-15
A = rand(9,10); % sample values
bar3(A)
  1 个评论
Dean Ranmar
Dean Ranmar 2016-9-15
Thanks. I've tried this and it doesn't work in my case. When I call bar3, I get a 2D figure for some reason. I tried the specific code lines you suggested, adjusted to my array size (128x1024) and it works. My test case is fairly sparse (few samples) and that may be the problem, I'll try loading the matrix with more values and see if that helps.

请先登录,再进行评论。


Steven Lord
Steven Lord 2016-9-15
As of release R2016b, the histogram and histogram2 functions can create a histogram using either raw data to be binned or precomputed bin counts. See the Release Notes for more information.

Dean Ranmar
Dean Ranmar 2016-9-15
Thank you! I completely forgot about surf. It worked like a charm.

类别

Help CenterFile Exchange 中查找有关 Line Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by