How to get a scatterhistogram in an UIAxes (e.g. Matlab App)?

2 views (last 30 days)
a = [1 2 3 4];
b = [1 2 3 4];
scatterhist(a,b) %works fine sofar
% I would like to display the scatterhist in an uiaxes as for example with
% a boxplot
myAxes = uiaxes;
boxplot(myAxes,a,1)
Unfortunately scatterhist does not support the axes graphics object.
Are there possibilities to fix that?
thank you very much
kind regards

Accepted Answer

Adam Danz
Adam Danz on 25 Jan 2024
Edited: Adam Danz on 25 Jan 2024
Scatterhistogram creates a figure with 3 axes. You can expecify where those 3 axes should be using the optional parent argument: scatterhistogram(parent,___) where parent can be a figure, panel, tab object, tiledchartlayout, or gridlayout.
Within your app figure, add a uipanel or one of the other supported objects. Then specify that object in the first argument of scatterhistogram.
Here's a demo that creates a figure instead of an app.
load patients
tbl = table(LastName,Age,Gender,Height,Weight);
fig = figure('Color',[.8 .8 .8]);
uip = uipanel(fig, 'Units','normalized','position', [.3 .3 .6 .6]);
s = scatterhistogram(uip,tbl,'Height','Weight');
If you prefer to use scatterhist, you can use the same workflow except that the parent argument is specified as name-value pair.
load fisheriris
x = meas(:,1);
y = meas(:,2);
fig = figure('Color',[.8 .8 .8]);
uip = uipanel(fig, 'Units','normalized','position', [.3 .3 .6 .6]);
s = scatterhist(x,y,'Parent',uip);
  1 Comment
Gernot Reichl
Gernot Reichl on 25 Jan 2024
Thank you very much Mr. Danz. Works great.
I appreciate your fast and professional support! :)
disp('Thank YOU!')
Thank YOU!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!