Hao B.

V1

2022/12/25阅读:27主题:重影

美化科研数据图

规范的科研数据图和美化科研数据图

1 思路

  • 修改属性:线、图窗、轴、标题和图例
  • 掌握基础语法:xx.xx
  • 多数的bug都是顺序问题

2 模板文件

% 示例数据
x = linspace(03500);
y = @(x) x.^2 .* sin(x);

% ------修改图幅------ %
gridiron = tiledlayout(11); % 行和列
gridiron.TileSpacing = "compact"
gridiron.Padding = "tight";
% gridiron.Units = "centimeters";
% gridiron.OuterPosition = [2, 2, 10.5, 7.88]; % heigth = 0.75width

nexttile % 必不可少

plot(x, y(x));

% 搭配exportgraphics函数方便批量化导出图片

% ------修改曲线的属性------ %
p.LineStyle = "-"% LineStyle
p.LineWidth = 1.2% LineWidth
p.Color = "r";  % Color
p.Marker = "o"% Marker,默认"none"
p.MarkerSize = 7% MarkerSize
p.MarkerEdgeColor = "r"% MarkerEdgeColor
p.MarkerFaceColor = "k"% MarkerFaceColor
p.MarkerIndices = [1050100170]; % MarkerIndices,默认全部标记

% ------修改轴属性------ %
ax = gca; % 获取当前轴
ax.FontName = "Arial"% FontName
ax.FontSize = 12% FontSize
% ax.FontUnits = "points"; % FontUnits,默认“磅”
% ax.FontWeight = "normal"; % FontWeight,默认”不加粗“  
% ax.FontAngle = "normal"; % FontAngle,默认”常规“
ax.LineWidth = .5% 次网格线存在时,不建议修改
ax.XColor = "k"% XColor
ax.YColor = "k"% YColor
ax.Box = "on"% Box

ax.XLim = [04]; % 横纵坐标轴的范围
% ax.XTick = [0, 1, 1.6, 2, 2.4, 3, 3.4, 4]; % 优先默认
ax.YTick = linspace(floor(min(y(x))), ceil(max(y(x))), 10); % 优先默认

ax.XAxis.TickLabelFormat = "%.1f"% XAxis.TickLabelFormat
ax.YAxis.TickLabelFormat = "%.2f"% YAxis.TickLabelFormat

ax.XMinorTick = "on"% XMinorTick
ax.YMinorTick = "on"% YMinorTick
ax.XMinorGrid = "on"% XMinorGrid
ax.YMinorGrid = "on"% YMinorGrid
ax.MinorGridColor = "k"% MinorGridColor
ax.MinorGridLineStyle = ":"% MinorGridLineStyle,优选默认

% ------标题------ %
xlb = xlabel("x-Data"); % xlabel,或"x_{Data}"
xlb.FontName = "Arial";
xlb.FontSize = 12.5;

ylb = ylabel("y-Data"); % ylabel
ylb.FontName = "Arial";
ylb.FontSize = 12.5;

% title
% 没特殊要求时,不建议加图标题

% ------添加辅助线和区域填充色,不是硬性要求------ %

line([1.491.49], [0ceil(max(y(x)))], 'LineStyle''--''color''k''LineWidth'1.5);

line([2.552.55], [0ceil(max(y(x)))], 'LineStyle''--''color''k''LineWidth'1.5);

% 确定填层区域的横纵坐标
x_bottom = linspace(1.82.8500);
x_top = x_bottom;
y_bottom = zeros(1length(x_bottom)); 
y_top = fliplr(y(x_top)); % 逆时针定点

pa = patch([x_bottom, fliplr(x_top)], [y_bottom, y_top], "b"); % 颜色一定要先设置好
pa.EdgeColor = "none";
pa.FaceAlpha = 0.1;
pa.LineWidth = 0.1;

% ------文字说明------ %

str = "$$ \int_{1.8}^{2.8} x^2\sin(x) \textrm{d} x $$"% LaTeX
text(.252.5, str, "interpreter""latex""FontSize"13);
annotation('arrow', [0.320.55], [0.60.4], 'LineWidth'0.8'HeadStyle''cback3');

% ------图例属性------ %
% 技巧:最后加图例

leg = legend("Example"); % legend
leg.FontName = "Arial"% Times New Roman, CMU Sans Serif...
leg.FontSize = 10;
leg.Location = "northwest"% 或best
leg.TextColor = "k";
leg.Box = "on";
leg.NumColumns = 1% NumColumns

% ------导出合适的图片------ %

% 方式1:手动处理,也可以重复使用

%{
优点:导出的图片内容的对比度更高(自动缩放了所有属性);
缺点:适用于量少。
%}

%{
运行-文件-导出设置-大小-修改宽度,高度自动-
勾选”放大坐标区至充满图窗“-渲染-分辨率-600-
应用于图窗-导出-保存类型-”.tif“(建议使用)-
修改文件名-合适的文件路径-保存
%}

% 方式2:自动化处理,同路径下找结果就行

% exportgraphics(gridiron, "Example.tif", "Resolution", 600); % 注意gridiron的来源

%{
优点:适用于批量;
缺点:导出的图片内容的对比度不高(没有自动缩放所有属性);
%}

3 结果展示

欢迎纠错。

分类:

数学

标签:

数学编程

作者介绍

Hao B.
V1