How to set the x axis on heatmap
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Roberto P
el 20 de Mzo. de 2020
Comentada: Roberto P
el 21 de Mzo. de 2020
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.
0 comentarios
Respuesta aceptada
Cris LaPierre
el 21 de Mzo. de 2020
You know the problem, you just have to decide what approach you want take. It's easy enough to use indexing to determine the points to use
heatmap(result,'Xdata',xbin(1:end-1),'YData',ybin);
If you do want to use the center point, try something like this
midpt = movmean(xbin,2,'Endpoints','discard');
heatmap(result,'Xdata',midpt,'YData',ybin);
5 comentarios
Cris LaPierre
el 21 de Mzo. de 2020
One last comment then. I'm not sure if your y-values are important, but if you want them to match what you were getting with heatmap, use axis ij. The benefit is you don't have to use flipud.
...
h = histogram2("XBinEdges",xbin,"YBinEdges",ybin,"BinCounts",result');
axis ij
...
Más respuestas (1)
Walter Roberson
el 21 de Mzo. de 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
0 comentarios
Ver también
Categorías
Más información sobre Data Distribution Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!