How can I add a table (independent of fig data) under figure?

62 vues (au cours des 30 derniers jours)
egg
egg le 12 Juin 2019
Modifié(e) : Adam Danz le 15 Jan 2020
I want to add a a table (example table below) under one of my figures. I can't use legends because the data for the figure and the table aren't parallel to one another, the table is just a detailed explanation of other components.
Screen Shot 2019-06-12 at 10.23.30 AM.png
  2 commentaires
Jan
Jan le 12 Juin 2019
Modifié(e) : Jan le 12 Juin 2019
What about using an uitable? What exactly means "under my figure"? A "figure" is the complete window. Do you mean "under a certain axes"?
egg
egg le 12 Juin 2019
Yes, I meant axes! Sorry I'm a little new to the terminology. I can currently make two subplots, and I want to make the second one a table rather than a plot/graph.

Connectez-vous pour commenter.

Réponse acceptée

Adam Danz
Adam Danz le 12 Juin 2019
Modifié(e) : Adam Danz le 12 Juin 2019
In addition to Jan's UI table suggestion, you could convert the table to a character array and use text() to plot the array on an invisible axes. Here's a demo.
% Create table
LastName = {'Sanchez','Johnson','Danz'};
Age = [38,43,40];
Height = [71, 69, 71];
T = table(LastName',Age',Height','VariableNames',{'LastName','Age','Height'});
% plot some data in the main axes
figure()
axes('position',[.1,.4,.8,.5])
plot(Age,Height,'o')
xlabel('Age')
ylabel('Height');
% Convert Table to cell to char array
tableCell = [T.Properties.VariableNames; table2cell(T)];
tableCell(cellfun(@isnumeric,tableCell)) = cellfun(@num2str, tableCell(cellfun(@isnumeric,tableCell)),'UniformOutput',false);
tableChar = splitapply(@strjoin,pad(tableCell),[1;2;3;4]);
% Add axes (not visible) & text (use a fixed width font)
axes('position',[.1,.1,.8,.2], 'Visible','off')
text(.2,.95,tableChar,'VerticalAlignment','Top','HorizontalAlignment','Left','FontName','Consolas');
If you'd like to implement Jan's suggestion to insert a UI table, this should get you started (following the example above).
uit = uitable('Data', table2cell(T),'ColumnName',T.Properties.VariableNames,...
'Units', 'Normalized', 'Position',[0.2,0.05,0.6,0.25]);
  4 commentaires
egg
egg le 12 Juin 2019
Thank you!
Adam Danz
Adam Danz le 12 Juin 2019
Modifié(e) : Adam Danz le 15 Jan 2020
No problem!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by