MATLAB初级绘图学习笔记

少年易老学难成,一寸光阴不可轻。

视频来自B站《MATLAB教程_台大郭彦甫(14课)原视频补档》

学习笔记如下:

需要的可以作为参考。

%怎么告诉电脑我要画图
%其实电脑看不到function,它是把点画出来
%指令plot()如果不给x就是默认  1 2 3...
%plot(x,y)  plot(y)

%只给y
plot(cos(0:pi/20:2*pi))
plot(sin(0:pi/20:2*pi))
%matlab画图会refresh,除非用hold on和hold off

hold on
plot(cos(0:pi/20:2*pi))
plot(sin(0:pi/20:2*pi))
hold off
%% Font ,Font size,Line width,Axis limit,Tick position;Tick label




y = -1*x + 3
plot((-5:0.1:5),y,'oy-')


%可以改变图形的style
%黑色k(靠!我的b怎么被blue抢走了)  蓝色b  蓝绿色c 绿色 g 红色r 白色w 黄色 y
%x是叉点, o是点 .,是点 *是*

%% plot(x,y,'str')
%str 放 markers line color 

hold on
plot(cos(0:pi/20:2*pi),'or--')
plot(sin(0:pi/20:2*pi),'xg-')
hold off

%% legend()
A=[0 1 2];
exp(A);


%注意!x是一个向量,.*和./是矩阵元素之间的运算,*和/是对矩阵的运算
%(常数之间的计算直接用*/即可)

% 无legend的时候  '颜色标记线'
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('L1','L2',...)

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() and xlabel() ylabel() zlabel()
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');



x = 0:0.1:2*pi;
y1 = sin(x);y2 = exp(-x)
plot(x,y1,'--*',x,y2,':o');
xlabel('t = 0 to 2\pi');%用反斜杠(转义字符)加pi,将特殊标识转换成一般读法
ylabel('values of sin(t) and e^{-x}');%特殊字源,把-x放到指数上去
title('Function of sin(t) and e^{-x}')
legend('sin(t)','e^{-x}');
% ps转义字符\ {}

%% LaTeX排版系统  annotation注解
% 在图像上显示一段文字text

%%用a^{}可以把表达式放在幂次上
x = linspace(0,3);%linspace生成x1,x2之间的N点线性的矢量
line([2,2],[0,2^2*sin(2)]);%在图像上划线,期末点的x和y
y = x.^2.*sin(x);
plot(x,y);
str = '$$ \int_{0}^{2} x^2\sin(x) dx $$';%用\是避免二次方和sinx搞混
text(0.25,2.5,str,'Interpreter','latex');%先写坐标,然后str,然后'Interpreter' 'latex'
annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]);

%str=''想写积分,首先积分的开头和结尾用$$ $$,然后上下限用\int_{}^{}


%必须要有text!!这样才能让文字出现在图像上,text那一句固定的要写和str一块出现
text0.25,0.32,str,'Interpreter','latex')%先坐标 然后’Interpreter'最后'latex
annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]);%先声明是arrow箭头,然后'X'起末x的百分比,'Y'起末y的百分比

x = linspace(1,2);%1到2,默认100个点
f= x.^2;
g =sin(2*pi.*x);
plot(x,f,x,g,'Xr');
legend('t^{2}','sin(2\pit)'); % 次序对应
xlabel('Time(ms)');
ylabel('f(t)');
title('Mini Assignment#1');
str='two function';
text(1.2,2.5,str,'Interpreter','latex');
annotation('arrow','X',[0.2,0.3],'Y',[0.6,0.5]);



%% 
x = linspace(0, 2*pi, 1000);y=sin(x);
plot(x,y);
set(gcf,'Color',[1 1 1]);%背景是白的
% 有三个物件:Figure object桌布 Axes object轴,line object线

%% 知道了handle 句柄,就能改变这个object
%gcf Figure,  gca Axes,  

%To fetch properties
% gca 是axes的handle
x = linspace(0, 2*pi, 1000);
y = sin(x);
plot(x,y,'r');
set(gca,'XLim',[0, 2*pi]);%set(目标的handle,'XLim',更改后的范围)
set(gca,'YLim',[-1.2, 1.2]);
set(gca, 'FontSize', 25);%%FontSize 字体大小
set(gca, 'XTick', 0 : pi/2 : 2*pi);%真实的刻度取值
set(gca,'XTickLabel',0:90:360);%刻度的标签
% 1、xticklabel:xticklabel是刻度标签。2、xtick:xtick是坐标轴刻度。
set(gca,'XTickLabel',{'0', 'p/2', 'p', '3p/2', '2p'});
h = plot(x, y);
set(h, 'LineStyle','-.','LineWidth', 7.0,'Color', 'g')
%delete(h)删掉线
% 也就是说用get去得到handle,然后去用set来设置,set(h,'',)'
% ''这里面放handle 然后改就完事了

%% Marker face color ,edge color
x= rand(20,1);
y = x;
set(gca,'FontSize', 18);
plot(x,y,'Xg-','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);
% 画在两个图上面

figure('Position', [left, bottom, width, height]);

%several small plots in a figure在一个figure上画很多小figure
subplot(m, n, 1);% m是竖方向的块个数,n是横向的块数,最后的1是第几个(从左往右再换行)


x = linspace(0,1);
y = (x.^2.*(1-x).^2) / 2;
g = (x.*(1-x).^3) / 3;
plot(x, y, x, g);
legend('y = (x^2*(1-x)^2) / 2', 'y = x*(1-x)^3) / 3');

%% 尝试一下三维图形
x = linspace(0, 3);
y = sin(x);
z = x + y;
plot3(x, y, z);
grid on;
xlabel('x');
ylabel('y');
zlabel('z');

%% subplot(m,n,p); 几乘几 第几个 改变轴的比例axis:normal ,square ,equal ,equal tight
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
%% 操作
axis off
axis on
box off%框框
box on
grid on
grid off

%% Saving Figures into Files
saves(gcf, '<filename>','<formattype>');
% 用鼠标方便些

附加一些图片,需要的时候查询即可。

线条

保存 

其他操作

 

 

 

当然,私以为,学习还是自己敲出来印象会更深刻。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值