matlab多变量绘图函数(类似ggplot2)

matlab多变量绘图函数(类似ggplot2)
1.多变量绘图
由于在matlab绘图时遇到多个变量,需要逐⼀绘制(还没到别的好⽅法),在此过程中使⽤hold on保持图形,⽐较繁琐,所以将其封装成为以下函数,简化该过程。⽬的是以更接近统计学的思维去绘图,当然还⼗分粗糙,和ggplot2没得⽐,不过出发点是向着它努⼒的。
函数如下:
function mulplot(data,nums,p,legfun)
%data:待绘图的数据,每列⼀个变量
%nums:绘图所⽤数据所在列1×3,依次为颜⾊、横坐标、纵坐标
%p:绘制类型,'l'代表线条,'p'代表散点
%legfun:⼀个函数,⽤于修饰图例
u=unique(data(:,nums(1)));
for i=1:length(u)
subdata=data(data(:,nums(1))==u(i),:);
if p=='l'
plot(subdata(:,nums(2)),subdata(:,nums(3)));
elseif p=='p'
scatter(subdata(:,nums(2)),subdata(:,nums(3)));
阳光房天窗
end
hold on;
end
hold off;
leg=num2cell(string(u));
for i=1:length(u)
leg{i}=legfun(leg{i});
end
legend(leg);
end
测试如下:
n=5;
夯实系数a=1:n;
x=repmat(a,1,n);
y=repelem(a,1,n);
z=x./(y+1);
data=[x',y',z'];
legfun=@(x) strcat("x=",x);
mulplot(data,[1,2,3],'l',legfun);
xlabel('y');ylabel('z');
得到图像如下:
2.⾊盲友好⾊函数
之前在这⾥提到了⾊盲友好⾊:wwwblogs/dingdangsunny/p/15305232.html#_label2
但是我们虽然知道了这些颜⾊的RGB,每次⽤起来还是不⽅便,总要⼿动操作⼀番,所以写成函数,⽅便使⽤。函数:
%blind.m将当前图窗的绘图⾊序设置为⾊盲友好⾊
blind_friendly = [0,114,178;
230,159,0;
240,228,66;
尾气吸收塔>电缆防盗报警装置
204,121,167;
0,158,115;
松梢斑螟86,180,233;
213,94,0]/255;
colororder(blind_friendly);
直接还是使⽤上⾯的案例,在末尾加上⼀句即可。
测试:
n=5;
a=1:n;
x=repmat(a,1,n);
y=repelem(a,1,n);
sesedy
z=x./(y+1);
data=[x',y',z'];
legfun=@(x) strcat("x=",x);
mulplot(data,[1,2,3],'l',legfun);
xlabel('y');ylabel('z');
blind;
效果:
对⽐可以发现其差异,使⽤简便,颜⾊已被替换为友好⾊。但是这只适⽤于线条数量⼩于等于7的情况,当数量⼤于7时可能要同时使⽤线型区分,或考虑其他⽅法。

本文发布于:2024-09-21 19:52:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/276666.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:绘图   函数   变量
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议