modified plotting in matlab?
1 view (last 30 days)
Show older comments
I have data for several histograms I am willing to plot like this one in attachenment using matlab. Is it possible in matlab of yes plese gauide
i have attached here 10*16 matrix data and on z axix i wanted to plot number of couts similar to that of verticle axis in 2d histogram plot
4 Comments
Accepted Answer
Asmit Singh
on 16 Aug 2022
Edited: Asmit Singh
on 16 Aug 2022
I understand that you want to plot a 3D Histogram from a matrix. For any histogram plotting, we need to decide on a bin size, that is the size of the smallest unit on one axis to be considered for calculating counts on the z axis. As mentioned in this example, the sample code for generating a 3D histogram for 30X1000 matrix, with random real numbers between -5 and 5, and a bin size of 0.5 is as follows
%generating random data
data = zeros(30,1000);
for k = 1:30
data(k, :) = rand(1) + rand(1)*randn(1000, 1);
end
%defining bins
bins = [-5:0.5:5];
counts = histc(data, bins, 2);
%plotting
hf = figure;
ha = axes;
hb = bar3(bins, counts.');
xlabel('split 1')
ylabel('bins');
zlabel('count');
In your case, the matrix size is 16X10. You can recheck your matrix once, considering that each row has identical values across columns. Assuming a range of -1 and 1, with a bin size of 0.1. We can generate the 3D Histogram as follows
data = readmatrix("data.txt");
edges = [-1:0.1:1];
counts = histc(data, edges, 2);
hf = figure;
ha = axes;
hb = bar3(edges, counts.');
xlabel('split 1')
ylabel('bins');
zlabel('count');
You can change the bin size and the range as per your requirements.
Disclaimer : This answer is my personal idea, and has nothing to do with MathWorks
More Answers (0)
See Also
Categories
Find more on Histograms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!