Effacer les filtres
Effacer les filtres

Scatterhist without normalized y axes on the marginal histograms. How ?

11 vues (au cours des 30 derniers jours)
LO
LO le 27 Fév 2020
Modifié(e) : Adam Danz le 17 Déc 2020
I am trying to plot some data using the scatterhist function.
The plotting works perfectly if not for one thing: when plotting data using a grouping variable the marginal histograms look all normalized to their own maxima.
This makes it impossible to compare the relative abundance of elements in different groups, as it just gives an idea of how the data are distributed within each of them.
I would like instead to conserve the former information, thus allowing group comparisons.
It should be possible to access the handles of the marginal histograms in this way.
If "s" is the general handle: s = scatterhist(x,y,'Group',grouping_variable,'Kernel','on').
s(1) is the handle for the scatter plot
s(2) the bottom marginal hisogram (referred to the X axis) and
s(3) the one for the vertical histogram (referred to the Y axis)
I also did not manage to change the bin size of the two.
Perhaps all this is very trivial...
thanks for your help

Réponse acceptée

Adam Danz
Adam Danz le 27 Fév 2020
Modifié(e) : Adam Danz le 17 Déc 2020
" when plotting data using a grouping variable the marginal histograms look all normalized to their own maxima"
That shouldn't be the case. Consider this example. Note that each group's marginal histograms have different maximum heights which shows that they are not normalized to their hown maxima, if I understand you correctly.
The axes containing the maginal histograms are normallized (axis limits are [0,1]) when you're plotting kernel density but that doesn't affect the shape of the distribution. See comment below to learn how to turn the histogram axes on conver them from normalized axes to axes that show bin counts.
load fisheriris.mat;
x = meas(:,1);
y = meas(:,2);
clf()
scatterhist(x,y,'Group',species,'Kernel','on')
  5 commentaires
Adam Danz
Adam Danz le 27 Fév 2020
Modifié(e) : Adam Danz le 27 Fév 2020
Are you able to run my code and produce the demo figure I shared?
Have you substituted your data correctly into the code from my demo?
If you show the relevant section of code, I can take a quick look at it. But first, confirmt the first question.
LO
LO le 27 Fév 2020
Modifié(e) : LO le 27 Fév 2020
thanks it works, my grouping variable was wrongly set.
I was still wondering whether one could modify the normalization of the existing plot (just to avoid adding lines of code) or in any case represent the histogram as a curve (which makes it easier to understand when several groups are overlapped).
I also have stil a question on the plotting. In order for the x axes to be aligned with the scatter plot I have to use the hand tool, drag the scatter plot "around", the plot will then "bounce back" into its original position and the histograms will now be aligned... it's a bit weird. It seems the plotting does not update unless one tries to manually translate the axes. Is this the case ?
Thanks anyway !

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by