首页 > 解决方案 > 如何在 matlab 中绘制专业质量的图表?

问题描述

matlab 生成的默认图表与我在书中看到的非常不同。例如,下面的图像在视觉上看起来令人愉悦。我可以更改 matlab 的默认设置以模仿这种图形风格吗? -

标签: matlabmatlab-figure

解决方案


这个问题将避免向 OP 讲授图形的最佳实践,而只是尝试按要求回答问题。我个人同意提出的一些担忧,但让 OP 去寻找有关数据可视化和图形美学的资源。(为了记录,我不是图表的粉丝。)

资源:

  1. MATLAB Plot Gallery描述了一系列可能对您有所帮助的绘图和调整。要获得高质量、专业外观的图表,请向下滚动到Advanced Plots以查看源代码和结果图。

  2. 可用的 MATLAB 绘图类型的图形概述。

  3. 您还可以制作基本绘图,然后使用 MATLAB 的绘图编辑器通过图形界面自定义属性。完成后,单击File-->Generate Code,您将看到一种可能的方法来对该图进行编码。当您知道如何通过界面做某事但想在将来编写脚本时,这很有帮助。

  4. 使用 Matlab 绘制出版物质量图的代码示例

  5. Mathworks 关于制作漂亮图表的博客
  6. 另一个在 MATLAB 中为论文和演示文稿创建高质量图形的示例

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

示例:
我不是专家。我通过查看文档、绘图源代码以及使用各种绘图组件的属性来了解此答案中的所有内容。

图表展示了可能的可定制功能

% 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

推荐阅读