As per the documentation, it is not possible to place a heatmap inside a UIAxes.However, a similar workflow can be achieved using the “UIPanel”. To gain greater control over the position, size, and overall layout of the heatmap, consider the following workaround:
- Use a “UIPanel” as the parent container for the heatmap to enhance control over positioning and layout.
- Embedd the heatmap within the “UIPanel” thus achieving functionality similar to “UIAxes”, in terms of precise positioning and layout adjustments.
- This workaround allows precise positioning for a structured layout, layout control for seamless integration, and flexibility to replicate “UIAxes” functionality when direct embedding is not feasible.
Below is an example code snippet for the approach mentioned above:
fig = uifigure('Name', 'Heatmap Example', 'Position', [100, 100, 500, 400]);
p = uipanel(fig, 'Position', [50, 50, 400, 300]);
cdata = [45 60 32; 43 54 76; 32 94 68; 23 95 58];
xvalues = {'Small','Medium','Large'};
yvalues = {'Green','Red','Blue','Gray'};
h = heatmap(p, xvalues, yvalues, cdata);
Here is a screenshot of expected output from the above code snippet:
For a better understanding of the functions used in above workaround, refer to the documentations using the following commands in MATLAB command line:
web(fullfile(docroot, "/matlab/ref/uifigure.html"))
web(fullfile(docroot, "/matlab/ref/uipanel.html"))
web(fullfile(docroot, "/matlab/ref/heatmap.html"))