如何在matlab中绘制专业质量图? [关闭]

问题描述 投票:-3回答:2

matlab生成的默认图形与我在书中看到的非常不同。例如,下面的图像看起来很悦目。我可以更改matlab的默认设置来模仿这种图形样式吗? -

matlab matlab-figure
2个回答
3
投票

这个问题将避免在OP上讲授关于图形的最佳实践,并且只是试图回答所提出的问题。我个人同意所提出的一些问题,但请将其留给OP,以寻求有关数据可视化和图形美学的资源。 (为了记录,我不是图表的粉丝。)

资源:

  1. MATLAB Plot Gallery描绘了一系列可能对您有帮助的情节和调整。要获得高质量,专业的图形,请向下滚动到高级绘图以查看源代码和结果图。
  2. 可用的Types of MATLAB Plots的图形概述。
  3. 您还可以制作基本图,然后使用MATLAB的绘图编辑器通过图形界面自定义属性。完成后,单击文件 - >生成代码,您将看到一种可能的方法来编码该图。当您知道如何通过界面执行某些操作但希望将来编写脚本时,这将非常有用。
  4. Publication Quality Plots with Matlab代码的示例
  5. 关于Making Pretty Graphs的Mathworks博客
  6. 关于Creating high-quality graphics in MATLAB for papers and presentations的另一个例子

我意识到其中一些链接可能最终会过期。如果他们这样做,请随时发表评论

例: 我不是专家。我通过查看文档,绘制源代码以及使用各种绘图组件的属性来学习这个答案中的所有内容。

Graph demonstrating possible customizable features

% Functions of Interest                     % MATLAB 2018a
fh=@(x) a + a*sin(b*x) + 1-exp(-b*x);
gh=@(x) a + (a/b)*cos(c*x);
a = 20;
b = .3;
c = .2;

% Plot
X = (0:.01:25)';
figure, hold on
p(1) = plot(X,fh(X),'r-','DisplayName','Excitation')
p(2) = plot(X,gh(X),'b-','DisplayName','Recovery')
% legend('show')    % Optional legend (omitted here since we're adding text)
xlabel('X')
ylabel('Y')
title('Particle Displacement')

% Options
ha = gca;
box on
grid on
ylim([-80 100])
set(ha,'GridLineStyle','--')     % use ':' for dots
t(1) = text(3.5,80,'excitation')
t(2) = text(12,20,'recovery')
for k = 1:2
    p(k).LineWidth = 2.2;
    t(k).FontWeight = 'bold';
    t(k).FontSize = 12;
    t(k).FontName = 'Arial';
end

1
投票

创建一个函数,该函数采用数据矩阵,其中每行代表您要绘制的信号。定义要用于绘图的一些样式。在你的示例图中,前两个是'bo'和'rx'。只需遍历您的行并使用不同的样式绘制每一行,然后使用命令“hold on;”

function fancyplot(xaxis, matrix)
    figure;
    style = {'bo', 'rx', 'k.'}; # and so on
    for r = 1:size(matrix, 1)
        plot(xaxis, matrix(r,:), style{r});
        hold on;
    end
end

编写另一个脚本,在绘制或将其添加到上面的函数后立即执行。在此脚本中,使用以下方法来控制轴的限制

xlim ylim

将它们设置为您绘制的数据的最小值/最大值。

要在图中添加文本,请使用Text命令。

如果你想在出版物中使用这些图,请注意大多数出版物都是黑白的,如果它们没有着色,你的图形应该是可区分的事件(我怀疑上面的那些)。我一直认为,在没有手动修补的情况下,在代码中进行所有格式化都是一个好主意。否则,您可能会发现必须在提交论文前不久更新出版物中的所有8个图。如果您运行一些模拟并且所有格式都在代码中,您只需执行格式化脚本并自动保存图表how to save a picture from code,最好是eps格式。

© www.soinside.com 2019 - 2024. All rights reserved.