投稿问答最小化  关闭

万维书刊APP下载

Matlab论文插图绘制模板第128期—函数三维折线图(fplot3)

2023/12/20 16:49:23  阅读:52 发布者:

在之前的文章中,分享了Matlab函数折线图的绘制模板:

进一步,再来分享一下函数三维折线图。

先来看一下成品效果:

模板中最关键的部分内容:

1. 数据准备

此部分主要是构造绘图数据。

% 构造函数

xt = @(t) exp(-t/10).*sin(5*t);

yt = @(t) exp(-t/10).*cos(5*t);

zt = @(t) t;

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用TheColor配色工具中的XKCD配色库:

%% 颜色定义

C = TheColor('xkcd',[507 270 627 725]);

% C = TheColor('sci',2068,'map',4);

C1 = C(1,1:3);

C2 = C(2,1:3);

C3 = C(3,1:3);

C4 = C(4,1:3);

3. 函数三维折线图绘制

通过调用fplot3’命令,绘制初始函数三维折线图。

f1 = fplot3(xt, yt, zt, [0 2*pi]);

hold on

f2 = fplot3(xt, yt, zt, [2*pi 4*pi]);

f3 = fplot3(xt, yt, zt, [4*pi 6*pi]);

f4 = fplot3(xt, yt, zt, [6*pi 8*pi]);

hTitle = title('Fplot3 Plot');

hXLabel = xlabel('x');

hYLabel = ylabel('y');

hZLabel = zlabel('z');

4. 细节优化

为了插图的美观,对坐标轴细节等进行美化:

% 线条属性调整

set(f1,'LineStyle','-','LineWidth',2.5,'Color',C1)

set(f2,'LineStyle','-','LineWidth',2.5,'Color',C2)

set(f3,'LineStyle','-','LineWidth',2.5,'Color',C3)

set(f4,'LineStyle','-','LineWidth',2.5,'Color',C4)

% 坐标区调整

set(gca, 'Box', 'on', ...                                          % 边框

         'LineWidth',1,...                                         % 线宽

         'XGrid', 'on', 'YGrid', 'on', 'ZGrid', 'on',...           % 网格

         'TickDir', 'out', 'TickLength', [.005 .005])              % 刻度

hLegend = legend([f1,f2,f3,f4], ...

    'samp1', 'samp2', 'samp3', 'samp4', ...

    'Location', 'northwest');

% Legend位置微调

P = hLegend.Position;

hLegend.Position = P + [0.01 -0.15 0 0];

% 字体字号

set(gca, 'FontName', 'Arial', 'FontSize', 10)

set([hXLabel,hYLabel,hZLabel,hLegend], 'FontName',  'Arial', 'FontSize', 10)

set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')

% 背景颜色

set(gcf,'Color',[1 1 1])

设置完毕后,以期刊所需分辨率、格式输出图片。

%% 图片输出

figW = figureWidth;

figH = figureHeight;

set(figureHandle,'PaperUnits',figureUnits);

set(figureHandle,'PaperPosition',[0 0 figW figH]);

fileout = 'test';

print(figureHandle,[fileout,'.png'],'-r300','-dpng');

以上。

转自:“阿昆的科研日常”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com