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.
LastName = {'Sanchez','Johnson','Danz'};
Age = [38,43,40];
Height = [71, 69, 71];
T = table(LastName',Age',Height','VariableNames',{'LastName','Age','Height'});
figure()
axes('position',[.1,.4,.8,.5])
plot(Age,Height,'o')
xlabel('Age')
ylabel('Height');
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]);
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]);
Best Answer