how do I plot a table to a figure?

55 visualizaciones (últimos 30 días)
Jason
Jason el 3 de Nov. de 2015
Editada: Jason el 17 de Nov. de 2015
I'm playing with tables because I liked how it's displayed and I'd like to display the table in a figure. Is there a simple way to do this (built in function?) or will I need to create a function that will do this somehow?
Example
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
T = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
T =
Age Height Weight BloodPressure
___ ______ ______ _______________
Smith 38 71 176 124 93
Johnson 43 69 163 109 77
Williams 38 64 131 125 83
Jones 40 67 133 117 75
Brown 49 64 119 122 80
I'd like T displayed in a figure that looks like it's displayed in the command window. Any ideas?
Thanks!

Respuesta aceptada

Walter Roberson
Walter Roberson el 3 de Nov. de 2015
Tlines = strsplit( evalc(T), '\n');
monofont = get(0,'FixedWidthFontName');
h = uicontrol('Style', 'edit', 'String', Tlines, 'Enable', 'disable', 'Font', monofont, 'Position', ......);
  2 comentarios
Jason
Jason el 3 de Nov. de 2015
Hi Walter, Thanks for the code, but evalc(T) doesn't work with a table. Am I supposed to convert the table to some other format first?
Jason
Jason el 17 de Nov. de 2015
Editada: Jason el 17 de Nov. de 2015
I figured out what I think Walter was doing.
If I replace the first line with
Tlines = strsplit('disp(evalc(T))', '\n');
the rest works.
Here's what I ended up doing:
% Set up an example table.
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
T = table(Age,Height,Weight,BloodPressure,'RowNames',LastName);
% Get the table in string form.
TString = evalc('disp(T)');
% Use TeX Markup for bold formatting and underscores.
TString = strrep(TString,'<strong>','\bf');
TString = strrep(TString,'</strong>','\rm');
TString = strrep(TString,'_','\_');
% Get a fixed-width font.
FixedWidth = get(0,'FixedWidthFontName');
% Output the table using the annotation command.
annotation(gcf,'Textbox','String',TString,'Interpreter','Tex','FontName',FixedWidth,'Units','Normalized','Position',[0 0 1 1]);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Tables en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by