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

172 views (last 30 days)
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 Comments
Jan
Jan on 12 Jun 2019
Edited: Jan on 12 Jun 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 on 12 Jun 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.

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 12 Jun 2019
Edited: Adam Danz on 12 Jun 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 Comments

Sign in to comment.

More Answers (0)

Categories

Find more on Specifying Target for Graphics Output in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!