Using a heatmap to display a large value range with detail
Ältere Kommentare anzeigen
I have a matrix composed of a very large data set around ~1000000 elements.
The problem I am facing is that the first half of elements have a tiny value, with the data displaying differences of 1.0E-9, but this data is quite important to the analysis. The second half have difference ranges of 1.0E-3 to 0.5.
I have attempted to plot a heatmap, image and surf graph of the data but am unable to get a resolution good enough to display specific.
Is there a way to display the data that I need? Such that even the smallest change in value is represented just as well as the larger changes?
I have attached the images generated.


Akzeptierte Antwort
Weitere Antworten (1)
Image Analyst
am 10 Feb. 2013
0 Stimmen
One common way to handle this is to take the log of the data before you send it into surf(), image(), or imshow(). That will compress the higher values and expand the lower values, allowing you to see the structure of your data over a greater range.
1 Kommentar
Image Analyst
am 10 Feb. 2013
Regarding your comment about taking the log and getting complex numbers. You can normalize your data to scale it between 1 and 100 so that you don't get values of 0 or less. The visualization should look virtually identical. You might want to look at mat2gray().
Kategorien
Mehr zu Data Distribution Plots finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
