How to set the x axis on heatmap
Show older comments
Hi all, I'm trying to plot a heatmap, but I'm not able to set up the x axis properly.
I have a data set that I run through this code to obtain a 2D histogram (that's what I'm aiming for)
[M,N]=size(data);
xbin=[0:0.2:8];
[counts,l]=histcounts(data(1,:),xbin);
result=counts;
for i=2:M
[counts,l]=histcounts(data(i,:),xbin);
result=[result; counts];
end
Then I try to plot the heatmap with this
ybin=[1:31];
heatmap(result,'Xdata',xbin,'YData',ybin);
colormap jet
But I get the error that lenght of xbin doesn't match the lenght of result.
I know that the error it's because xbin values are edges and not centers, so I end up having 1 extra value on the xbin var. Do you know how I could set up the edges value on the x axis? Thanks.
A workaround could be using hist instead of histcounts, so the values of xbin will be centers and not edges, but I'd like to avoid this solution.
Accepted Answer
More Answers (1)
Walter Roberson
on 21 Mar 2020
[M,N]=size(data);
xbin=[0:0.2:8];
[counts,l]=histcounts(data(1,:), [xbin, inf]);
result=counts;
for i=2:M
[counts,l]=histcounts(data(i,:), [xbin, inf]);
result=[result; counts];
end
Categories
Find more on Data Distribution Plots 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!

