本文主要是介绍Matlab个性化绘图第3期—带三维球标记的折线图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前段时间有会员在群里问该如何绘制下面这种带三维球标记的折线图:
本期内容就来分享一下带三维球标记的折线图的Matlab绘制思路。
先来看一下成品效果:
特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【全家桶】查看加入方式。
1. 数据准备
此部分主要是读取原始数据。
% 读取数据
x = 1:10;
A = [5 7.5 8 1.5 1.2 1.8 2.2 2.5 2.3 2.4
8.7 1.6 1.65 2.5 2.45 2.5 1.1 1.2 1.1 1];
2. 颜色定义
作图不配色就好比做菜不放盐,总让人感觉少些味道。
但颜色搭配比较考验个人审美,需要多加尝试。
这里直接使用TheColor配色工具中的SCI权威配色库:
% 颜色定义
C = TheColor('sci',500);
3. 带三维球标记的折线图绘制
调用自制的‘drawball’和‘Shadow’工具,绘制初始带三维球标记的折线图。
%% 折线图绘制
p = plot(x,A);
for i = 1:size(A,1)
set(p(i),'LineStyle','-','Marker','none','LineWidth',2.5,'Color',C(i,1:3))
end
drawball(x,A,0.3,C) % 0.3为球半径
Shadow([-60,45],'shiny','phong')
hTitle = title('Line with Ball Plot');
hXLabel = xlabel('XAxis');
hYLabel = ylabel('YAxis');
%% 绘制legend
inter = 1; % 行距
ll = 1; % 长度
lx = 8; % 左上角x
ly = 8.5; % 左上角y
% 构造线数据并绘制
temp = ly:-inter:(ly-1*inter);
xx = [lx lx+ll];
yy = repmat(temp',1,2);
for i = 1:size(A,1)
t = plot(xx,yy(i,:));
set(t,'LineStyle','-','Marker','none','LineWidth',2,'Color',C(i,1:3))
end
% 构造球数据并绘制
bx = lx+ll/2;
by = temp';
drawball(bx,by,0.2,C)
lab = {'Samp1' 'Samp2'};
for i = 1:size(A,1)
text(lx+ll+ll*0.1,temp(i),lab{i},'HorizontalAlignment','left','VerticalAlignment','middle','FontSize',9,'FontName','Arial','color','k')
end
然后再添加一些细节,并输出保存:
以上。
这篇关于Matlab个性化绘图第3期—带三维球标记的折线图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!