
Hao B.
V1
2022/12/25阅读:27主题:重影
美化科研数据图
规范的科研数据图和美化科研数据图
1 思路
-
修改属性:线、图窗、轴、标题和图例 -
掌握基础语法:xx.xx -
多数的bug都是顺序问题
2 模板文件
% 示例数据
x = linspace(0, 3, 500);
y = @(x) x.^2 .* sin(x);
% ------修改图幅------ %
gridiron = tiledlayout(1, 1); % 行和列
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 = [10, 50, 100, 170]; % 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 = [0, 4]; % 横纵坐标轴的范围
% 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.49, 1.49], [0, ceil(max(y(x)))], 'LineStyle', '--', 'color', 'k', 'LineWidth', 1.5);
line([2.55, 2.55], [0, ceil(max(y(x)))], 'LineStyle', '--', 'color', 'k', 'LineWidth', 1.5);
% 确定填层区域的横纵坐标
x_bottom = linspace(1.8, 2.8, 500);
x_top = x_bottom;
y_bottom = zeros(1, length(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(.25, 2.5, str, "interpreter", "latex", "FontSize", 13);
annotation('arrow', [0.32, 0.55], [0.6, 0.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