Matlab多种绘图方式,包括函数,统计,3d等多种实例

%%
hold on
plot(cos(0:pi/20:2*pi),'xr--');
plot(sin(0:pi/20:2*pi),':');
hold off%实现多函数图像同时输出显示
%%
x=0:0.5:4*pi;
y=sin(x);
h=cos(x);
w=1./(1+exp(-x));
g=(1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2));
plot(x,y,'bd-',x,h,'gp:',x,w,'ro-',x,g,'c^-');%画出函数 (自变量,因变量,'线形颜色')
legend('sin(x)','cos(x)','w','g');%注解框
title('666');%标题
xlabel('x');
ylabel('f(x)'); %坐标轴
%%
x=linspace(0,3);%x的取值范围
y=x.^2.*sin(x);
plot(x,y);
line([2,2],[0,2^2*sin(2)]);%划线 [x范围],[y范围]
str='$$ \int_{0}^{2} x^2\sin(x) dx $$';%积分符号
text(0.25,2.5,str,'Interpreter','latex');%显示文本 (横坐标位置,纵坐标位置,字符串,)
%annotation('arrow','x',[0.3,0.5],'y',[0.6,0.4]);%箭头 ('arrow','x',[x,y],'y',[x,y])[]中为占图比列
%%
t=linspace(1,2);
f=t.^2;
g=sin(2*pi.*t);
hold on
plot(t,f,'k-','LineWidth',3);
plot(t,g,'-md');
hold off
get(gca)
set(gca,'FontSize',15);
legend('t²','sin(2Πt)');
title('练习');
xlabel('Times(ms)');
ylabel('不知道');
%%
% 优化图像
x=linspace(0,2*pi,1000);
y=sin(x);
plot(x,y);
h=plot(x,y);%类似于指针
get(h);%得到图像参数
get(gca)%gca为函数图像以外的元素
set(gca,'XLim',[0,2*pi]);
set(gca,'YLim',[-1.2,1.2]);%设置坐标轴的限制条件(gca,'X\YLim',[取值范围])
set(gca,'FontSize',25);%加大字体
set(gca,'XTick',0:pi/2:2*pi);%改变实际图像x的分度值
%set(gca,'XTickLabel',0:90:360);%改变图像上x轴显示的分度值
set(gca,'FontName','TeXLaTeX');%将分度值的名称转成TeXLaTeX(字体)
set(gca,'XTickLabel',{'0','p/2','p','3p/2','2p'});%设置名称
set(h,'LineStyle','-.','Linewidth',7,'Color','g');%设置函数图像属性(函数图像名称,'LineStyle','线型','Linewidth',宽度数值,'Color','对应的颜色符号')
delete(h);%删除括号内的函数图像
%%
%折线图
x=rand(20,1);%生成随机数 
set(gca,'FontSize',18);
plot(x,'-md','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);
xlim([1,20]);%取值范围
%%
% 多函数分页面显示
x=-10:0.1:10;
y1=x.^2-8;
y2=exp(x);
figure,plot(x,y1);%呼叫声明
figure,plot(x,y2);
%%
% 拼图
t=0:0.1:2*pi;
x=3*cos(t);
y=sin(t);
subplot(2,2,1);plot(x,y);axis normal
subplot(2,2,2);plot(x,y);axis square
subplot(2,2,3);plot(x,y);axis equal %单位长度一样x,y
subplot(2,2,4);plot(x,y);axis equal tight%subplot(行数,列数,序号)
%%
% 存储
save(gcf,'<filename>','<formattype>')
%%
% 进阶绘图
%%
x=logspace(-1,1,100);%取10的负一次方到10,分成一百份
y=x.^2;
subplot(2,2,1);
plot(x,y);%常规
title('Plot');
subplot(2,2,2);
semilogx(x,y);%x轴为log形式
title('Semilogx');
subplot(2,2,3);
semilogy(x,y);
title('Semilogy');
subplot(2,2,4);
loglog(x,y);
title('Loglog'); 
set(gca,'XGrid','on');%添加网格
%%
% 双y轴
x=0:0.01:20;
y1=200*exp(-0.05*x).*sin(x);
y2=0.8*exp(-0.5*x).*sin(10*x);
% [AX,H1,H2]=plotyy(x,y1,x,y2);%定义双y轴 旧版本
%set(get(AX(1),'Ylabel'),'String','Left Y-axis')%
%set(get(AX(2),'Ylabel'),'String','Right Y-axis')%确定y轴在哪一侧
yyaxis left
H1=plot(x,y1);
yyaxis right
H2=plot(x,y2);
title('Labeling plotyy');
set(H1,'LineStyle','--');%
set(H2,'LineStyle',':');%设置线形
%%
% 条形统计图
y=randn(1,1000);
subplot(2,1,1);
histogram(y,10);%生产统计图表,平均十份
title('10');
subplot(2,1,2);
histogram(y,50);
title('50');
%%
%bar 单独元素分析
x=[1 2 5 4 8];
y=[x;1:5];
subplot(1,3,1);bar(x);%需要分析的元素
title('x');
subplot(1,3,2);bar(y);title('y');
subplot(1,3,3);bar3(y);title('3D,y');%生产3D图像
%%
%堆积图
x=[1 2 5 4 8];
y=[x;1:5];
subplot(1,2,1);
bar(y,'stacked');
title('y的堆积图');
subplot(1,2,2);
barh(y);
title('纵向排列');
%%
% 扇形图
a=[10 2 20 30];
subplot(1,3,1); pie(a);
subplot(1,3,2); pie(a,[1,0,0,1]);%[]内为1便分离
subplot(1,3,3); pie3(a,[0,0,0,1]);
%%
% 极坐标
x=1:100;
jiaodu=x/10;
r=log10(x);
subplot(2,2,1); polarplot(jiaodu,r);%polar(自变量,因变量)
jiaodu=linspace(0,2*pi); r=cos(5*jiaodu);
subplot(2,2,2); polarplot(jiaodu,r);
jiaodu=linspace(0,2*pi,7);%取值范围linspace(初始,终止,分为多少份)
r=ones(1,length(jiaodu));%函数关系式
subplot(2,2,3);  polarplot(jiaodu,r);
jiaodu=linspace(0,2*pi); r=0.5-sin(jiaodu);
subplot(2,2,4); polarplot(jiaodu,r);
%%
% 取样保持
x=linspace(0,4*pi,40);
y=sin(x);
subplot(1,2,1); stairs(y);%阶梯状
subplot(1,2,2); stem(y);%柱状
%%
% 练习
x=linspace(0,10,100);
t=sin(pi*x/10);
f=t.*sin(pi*x.^2/4);
hold on
plot(x,f);
stem(x,f);
hold off
%%
%箱线图
load carsmall%选取文件
boxplot(MPG,Origin);
x=0:pi/10:pi;
y=sin(x);
e=std(y)*ones(size(x));
errorbar(x,y,e);
%%
%二维三维色差图
[x,y]=meshgrid(-3:.2:3,-3:.2:3);
z=x.^2+x.*y+y.^2;
surf(x,y,z);
box on;
set(gca,'FontSize',16);
zlabel('z');
xlim([-4 4]); xlabel('x');
ylim([-4,4]);ylabel('y');%3d
%imagesc(z);axis square;xlabel('x');ylabel('y');%二维
colorbar;%比色卡
colormap("hot");%暖色系
colormap("cool");%冷色系
%%
%练习
x=[1:10;3:12;5:14];
imagesc(x);
colormap("turbo");
colorbar;
%%
%3D绘图
x=0:0.1:3*pi;
z1=sin(x);
z2=sin(2*x);
z3=sin(3*x);
y1=zeros(size(x));
y3=ones(size(x));
y2=y3./2;
plot3(x,y1,z1,'r',x,y2,z2,'b',x,y3,z3,'g');%绘出函数图像
grid on;
xlabel('x');
ylabel('y');
zlabel('z');
%%
% 3D网格
x=-2:0.1:2;
y=-2:0.1:2;
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
subplot(2,2,1); mesh(X,Y,Z);%线条颜色
axis square;
subplot(2,2,2); surf(X,Y,Z);%表面颜色
subplot(2,2,3); contour(X,Y,Z);%类似等高线
[C,h]=contour(Z);
clabel(C,h);%在等高线上表数值
%%
%牛逼的很的球,类比地球的等温图像
sphere(50);
shading flat;
light('Position',[1 3 2]);
light('Position',[-3 -1 3]);
material shiny;
axis vis3d off;
set(gcf,'Color',[1,1,1]);
view(-45,20);%光照角度
%%
% 给球打光,也很牛逼
[X,Y,Z]=sphere(64);
h=surf(X,Y,Z);
axis square vis3d off;
reds=zeros(256,3);
reds(:,1)=(0:256.-1)/255;
colormap(reds);
shading interp;
lighting phong;
set(h,'AmbientStrength',0.75,'DiffuseStrength',0.5);
L1=light('Position',[-1,-1,-1],'Color','g');%设置灯光位置颜色等

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈走天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值