Effacer les filtres
Effacer les filtres

create a table next to a graph on figure

109 vues (au cours des 30 derniers jours)
Shahar ben ezra
Shahar ben ezra le 11 Mar 2021
Commenté : dpb le 26 Avr 2021
Hey
I want to create a table next to a graph
Is it possible?
Example code:
clc, clear
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
T = table(Age,Height,Weight,'RowNames',LastName)
%I want to see a picture next to the table in fig
figure(1)
subplot(121);
u=uitable('Data',T{:,:},'ColumnName',T.Properties.VariableNames,...
'RowName',T.Properties.RowNames,'Units', 'Normalized', 'Position',[0, 0, 1, 1]);
% It does not work :(
subplot(122);
x = 0:pi/100:2*pi;
y = sin(x);
plot(y,x)
% I want like this but With a table
figure(2)
subplot(121);
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
subplot(122);
x = 0:pi/100:2*pi;
y = sin(x);
plot(y,x)
TNX :)

Réponse acceptée

dpb
dpb le 11 Mar 2021
A table object can't be put in a figure and, AFAIK, it's not possible to redirect command window output to a figure other than by preparing an image independently of the content desired.
But, you can put the uitable on subplot; you used wrong coordinate system -- I reoriented it to a 2x1 format instead of 1x2, but if your data fit more better the other way, you can easily revert.
hAx=subplot(2,1,1); % set subplot area
hUI=uitable('Data',T{:,:},'ColumnName',T.Properties.VariableNames,...
'RowName',T.Properties.RowNames,'Units', 'Normalized', 'Position',hAx.Position);% set table on top
delete(hAx) % no need for the axes
hAx=subplot(2,1,2); % make the other axes
plot(x,y) % and plot into them
results in
Your table doesn't have enough data to take up the whole area of the axes, but you can see the outline of the area the top axes laid out.
I didn't try with nexttile; I presume same thing will happen.
  6 commentaires
Shahar ben ezra
Shahar ben ezra le 26 Avr 2021
When I use the 2018 version I get the next error
Unrecognized method, property, or field 'Position' for class 'matlab.Gra​phics.axis.axes
clc, clear
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
Table_freq_sortrows = table(Age,Height,Weight,'RowNames',LastName)
x = 0:pi/100:2*pi;
y = sin(x);
hAx=subplot(2,1,1);
hUI=uitable('Data',Table_freq_sortrows{:,:},'ColumnName',Table_freq_sortrows.Properties.VariableNames,...
'RowName',Table_freq_sortrows.Properties.RowNames,'Units', 'Normalized', 'Position',hAx.Position);
delete(hAx)
hAx=subplot(2,1,2);
plot(x,y)
dpb
dpb le 26 Avr 2021
You didn't keep the two axes handles but wiped out the first...look at my code more carefully.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by