之前写过一次博客 Matlab&Python 如何在figure上画出表格
这次是对该博客的优化
图的结果见下相对之前有很大的进步:
coding
在这里包含数据的绘制,表格的添加,设置表格的大小、位置等
clc
clear
close all;
path(path,'E:\new_matlab_Tool\export_fig3.25\export_fig-master');
%% 表格数据
data_row1=[68,68,86,43];
data_row2=[48,15,37,25];
data=[data_row1;repmat(data_row2,12,1)];
%% 表格作图
fig_size = 800;
figure('color','w','position',[0, 0, fig_size*1.414,fig_size]);
plot( data(:,1), 'k-','LineWidth',1.2 );
hold on;
plot( data(:,1), 'k.','MarkerSize',20);
plot( data(:,2), 'b-','LineWidth',1.2 ); plot( data(:,2), 'b.','MarkerSize',20);
plot( data(:,3), 'r-','LineWidth',1.2 ); plot( data(:,3), 'r.','MarkerSize',20);
plot( data(:,4), 'g-','LineWidth',1.2 ); plot( data(:,4), 'g.','MarkerSize',20);
%% 生成表格行列名称,m行n列
str1='气旋';str2='TC';
m=13;n=4;
column_name=strcat(str1,num2str((1:n)'));
row_name=strcat(str2,num2str((1:m)'));
ut = uitable(gcf,'Data',data,'Position',[550 450 400 246], ...
'Columnname',column_name,'Rowname',row_name,'BackgroundColor',[0 0.5 0], ...
'ColumnWidth',{85});
set(gca,'Fontsize',16,'FontWeight','bold','FontName','Times New Roman')
% 暂时找不到合适的方法,调字体,调'ColumnWidth',以及调'Position'
export_fig( gcf, '-png', '-r600', ['figure_table','.png']);
代码解释
这段代码是用于在 MATLAB 中绘制一个带有表格的图形,并将图形保存为 PNG 格式的文件。下面是对代码中各部分的解释:
step1
%% 表格数据
data_row1=[68,68,86,43];
data_row2=[48,15,37,25];
data=[data_row1;repmat(data_row2,12,1)];
这里定义了一个 13 行 4 列的矩阵 data
,其中第一行是 data_row1
,剩余的行是 data_row2
的重复。这个矩阵将用于绘制图形和表格。
step2
%% 表格作图
fig_size = 800;
figure('color','w','position',[0, 0, fig_size*1.414,fig_size]);
plot( data(:,1), 'k-','LineWidth',1.2 );
hold on;
plot( data(:,1), 'k.','MarkerSize',20);
plot( data(:,2), 'b-','LineWidth',1.2 ); plot( data(:,2), 'b.','MarkerSize',20);
plot( data(:,3), 'r-','LineWidth',1.2 ); plot( data(:,3), 'r.','MarkerSize',20);
plot( data(:,4), 'g-','LineWidth',1.2 ); plot( data(:,4), 'g.','MarkerSize',20);
这个部分绘制了一个带有表格的图形。图形的背景颜色为白色。plot
函数用于绘制 4 条曲线,每条曲线对应 data
矩阵的一列。这里使用不同的颜色和标记来区分不同的曲线。
step3
%% 生成表格行列名称,m行n列
str1='气旋';str2='TC';
m=13;n=4;
column_name=strcat(str1,num2str((1:n)'));
row_name=strcat(str2,num2str((1:m)'));
ut = uitable(gcf,'Data',data,'Position',[550 450 400 246], ...
'Columnname',column_name,'Rowname',row_name,'BackgroundColor',[0 0.5 0], ...
'ColumnWidth',{85});
这个部分用于生成表格的行列名称,并将表格添加到图形中。strcat
函数用于生成行列名称的字符串,m
和 n
分别表示表格的行数和列数。uitable
函数用于创建表格,并设置表格的属性,如位置、行列名称、背景颜色和列宽。这里设置表格的位置为 [550 450 400 246]
,即表格位于图形的右上角,大小为 400×246 像素。
step4
set(gca,'Fontsize',16,'FontWeight','bold','FontName','Times New Roman')
% 暂时找不到合适的方法,调字体,调'ColumnWidth',以及调'Position'
export_fig( gcf, '-png', '-r600', ['figure_table','.png']);
这个部分用于调整图形和表格的字体,并将图形保存为 PNG 文件。set
函数用于设置图形的属性,如字体大小、字体粗细和字体名称。export_fig
函数用于将图形保存为 PNG 格式的文件,文件名为 figure_table.png
,分辨率为 600 dpi。
Reference
Mathworks - uitable(中文)
Mathworks - uitable (English)
Matlab&Python 如何在figure上画出表格
matlab如何画一张表格图?