I have two columns of data, x and y, how can I make a ‘thermodynamic diagram’ with matlab? The z axis is the density value of dots, like below figure. enter image description here enter image description here

The x-axis is angle, y-axis is distance.enter image description here I want to construct a heatmap like this figure:enter image description here

  • $\begingroup$ Hi, how is this related to bioinformatics? What have you tried? I don't know if you want your data like in the second plot or like in the first one. Could you provide a some data to test solutions? $\endgroup$
    – llrs
    Nov 12, 2017 at 12:40

1 Answer 1


A reverse image search on google leads to the exact code used to produce the second image:

[Xcoarse, Ycoarse] = meshgrid([0 1 2 3], [0 1 2 3]);
[Xfine, Yfine] = meshgrid(linspace(0,3,3000), linspace(0,3,3000));
DataCoarse = [ 1 2 4 1; ...
           6 3 5 2; ...
           4 2 1 5; ...
           5 4 2 3];
DataBicubicFine  = interp2(Xcoarse, Ycoarse, DataCoarse, Xfine, Yfine, 'bicubic');
surf(Xfine, Yfine, DataBicubicFine); shading flat; colormap(jet); view(0, 90)
 hold on; plot3(Xcoarse, Ycoarse, 10*ones(size(Xcoarse)), 'k.', 'MarkerSize', 20)
print -dpng -r300 BicubicInterpolationExample.png 

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.