matlab 郭彦甫 5 绘图初步
1.基本绘图
%% x=linspace(0,2*pi,20); %将x从0-2*pi 分成20份 y=cos(x);% 蓝色 length(y)=20 z=sin(x);% 橙色 length(z)=20 hold on %保持所有图像在同一个坐标系中 同时保留 否则,后面的图像回之前 前面的图像会通过刷新缓存而删除(opengl) plot(x,y); %四个函数为什么x值的范围不同 plot(x,y)绘制每个向量对 (x,y)根据x y取值 plot(z); %绘制每个向量对(x,y) 其中x=[1...n] n=length(z) z的个数与x被分份数相同 %所以此时z的个数应该为20 所以x从1-20 取值 %length(sin(0:pi/20:2*pi))=41 plot(sin(0:pi/20:2*pi)); %黄色 同z (函数值)因变量y的个数为41 x取值从0-41 plot(cos(0:pi/20:2*pi)); %紫色 同上 x取值从0-41 hold off
2.设置
plot style
matlab图形允许控制的直观特征
LineWidth 指定线条的宽度
MarkerEdgeColor 指定标记颜色或填充标记(圆形、方形、菱形、五角形、六角形和四个三角形)的边的颜色
MarkerFaceColor 指定填充标记的面的颜色
MarkerSize 指定标记的大小
LineStyle 指定线形
Color 颜色
Marker
修改线条外观 添加图例
线型 标记符号 颜色
hold on plot(sin(0:pi/20:2*pi),'or--'); %or-- 以-- 绘制xy图像,在数据点位置防止圆形标记,并将标记和线条颜色设置为红色 plot(cos(0:pi/20:2*pi),'xg:'); %xg: 以...绘制图像,在数据点位置放置X标记 并将标记和.线的颜色设置为绿色 hold off legend('sin(x)','cos(x)'); %图例 图例按绘制的顺序 给定字符串名称
添加title( ) 、label( )、Text( ) 、annotation( )
显示标题 标签 文本 箭头等
x=0:0.1:3; %自变量赋值 y1=sin(x); y2=exp(-x); y3=x.^2.*sin(x); %注意这里的运算符号 .^ .* 包括标量和向量 hold on %plot(x,y1,'--*',x,y2,':o',x,y3,'--b'); %同时绘制三个函数 2016b 不支持 plot(x,y1,'--*'); plot(x,y2,':o'); plot(x,y3); hold off %部分1 xlabel('t=0 to 2\pi'); % 坐标轴标签 x轴 ylabel('sin(t) and e^{-x}'); %y轴标签 title('plots sine exp'); %坐标系名称 legend('sin(t)','e^{-x}','x^2*sin(x)'); %三个图例 %文字说明和箭头 line([2,2],[0,2^2*sin(2)]); %绘制线条 根据参数提供的数据 str='$$ \int_{0}^{2} x^2\sin(x) dx $$';% 显示的文字内容 通常为函 数表达式 文字用latex 语言来表示 注意$$符号的使用 text(0.25,2.5,str,'interpreter','latex'); %向坐标系中添加 前两个数据表示添加文字位于坐标系中的位置 str变量为内容 annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]);%画箭头
说明:line(
使用向量 x
,y
)x
和 y
中的数据在当前坐标区中绘制线条。如果 x
和 y
中有一个是矩阵或两者都是矩阵,则 line
将绘制多个线条。与 plot
函数不同,line
会向当前坐标区添加线条,而不删除其他图形对象或重置坐标区属性。
annotation()创建注释:用于画箭头
X、Y是箭头的位置相对于整个方框的比例,
[0.32,0.5]是指:x坐标从整个图形32%的地方到50%的地方(从左到右)
[0.6,0.4]是指:y坐标从60%的地方到40%的地方(从上到下)
练习:
代码如下:
t=(1:0.01:2); f=t.^2; g=sin(2*pi*t); hold on plot(t,f,'k'); %黑色 plot(t,g,'or') %o型 红色 hold off %坐标轴标题 xlabel('t=1-2:t^2 and sin(2\pit)'); %pi需要转义 表示π ylabel('t^2 and sin(2\pit)'); title('read me'); %图例 legend('t^2','sin(2\pit)');
图的标准设置 利用句柄的方法 分析继承关系 (联想opengl的相关内容) 父亲和儿子 孙子
几个属性
Font字体
Font size 字体大小
Line width 线宽
Axis limit 轴的限制
Tick postition 标记的位置
Tick label 标记的标签
图形对象
图形有许多物体组成 见上图
图像的属性 图像的窗口---》查看---》属性编辑器
修改对象的属性 利用句柄的形式修改
1.标识一个对象的handle
获取或修改属性
获取为get() 修改属性为 set()
x=linspace(0,2*pi,1000); y=sin(x); h=plot(x,y); get(h) %获取h函数的属性 函数图像 (曲线) get(gca) %获取坐标轴属性 get(gcf) %获取当前figure 属性 祖宗节点
%此时 的gca gcf h就当前对应对象的句柄
生成图像后不要关闭图像窗口,才能设置各个方面的属性
案例设置x轴的限制
x=linspace(0,2*pi,1000); y=sin(x); h=plot(x,y); set(gca,'XLim',[0,2*pi])%未加此语句前 x轴显示最大值为7 刻度发生变化 %添加此语句后,x轴显示最大值为2*pi 约为6.28 set(gca,'YLim',[-1.2,1.2])
设置轴的字体和刻度间隔
set(gca,'FontSize',25)
x=linspace(0,2*pi,1000); y=sin(x); h=plot(x,y); set(gca,'FontSize',25); %图2 set(gca,'XTick',0:pi/2:2*pi); %图3 set(gca,'XTickLabel',0:90:360); %图4 set(gca,'FontName','Rod'); %图5 set(gca,'XTickLabel',{'0','\pi/2','\pi','3\pi/2','2\pi'});
%图5
1 2 3 4
5
线规范
点击了解👉text 向数据点添加文本说明
点击了解👉Text属性 坐标区文本的外观和行为
点击了解👉Line 图形线条的外观和行为
转载于漓艾初 matlab 关于interpreter的使用
https://blog.csdn.net/aron_conli/article/details/104815829
Line style and width
set(h,'LineStyle','-.','LineWidth',7.0,'Color','g') %plot(x,y,'-.g','LineWidth',7.0) 此语句与上面的语句功能相同 %alternative 非传统的 可替代的
delete(h) 删除h对象 (句柄) 坐标系保留 但是函数图像不存在
标记规范 marker specifcation
face and edge colors of the markder 标记点的面和边缘的颜色
x=rand(20,1); %随机产生20个 小于1的数 %length(x) %检测个数 set(gca,'FontSize',18); %设置坐标轴 字体大小为18 plot(x,'-md','LineWidth',2,'MarkerEdgeColor','k',... % 数据点为marker edge为边为黑色 face为面为绿色 'MarkerFaceColor','g','MarkerSize',10); % xlim([1,20]);
练习:
t=linspace(1,2); f=t.^2; g=sin(2*pi*t); hold on h=plot(t,f,'k'); g=plot(t,g,'or'); hold off legend('t^2','sin(2\pit)','Location','northwest','FontWeight','bold') %注意legend的设置 xlabel('xxx'); ylabel('yyy'); title('title'); xticks(1:0.2:2); %坐标轴范围 yticks(-1:0.5:4); %y轴范围 set(h,'LineWidth',4); %h表示绘制出来的图像 所以应该是h=plot() h为句柄 而不是f为句柄 set(gca,'FontSize',15); %坐标轴字号大小 set(g,'MarkerFaceColor','b'); %改变g函数face 的颜色
%set(g,'MarkerFaceColor','#0000ff') %自定义颜色
Multiple Figures 多图
直接画两个图-------图中的坐标系均不同
create a figure window by calling figure
x=-10:.1:10; y1=x.^2-8; y2=exp(x); figure,plot(x,y1); %此为figure1 figure,plot(x,y2); %此为figure2
此时先画figure1 后画figure2 所以都画完后,当前的gca gcf 全局句柄为figure2图像相关 所以注意调用句柄时为 current figure
Figure Position and Size 图像位置和大小
figure('Position',[left,bottom,width,height]); 类似css布局
x=-10:.1:10; y1=x.^2-8; y2=exp(x); %figure('Position',[left,bottom,width,height]); figure('Position',[30,200,500,700]); %1顺序不能反 先画figure 画布 plot(x,y1); %2再用plot 画函数图像
一个画布中画过个坐标系 多个图标 多个plot
subplot(m,n,1); m*n 行列式 m为行数 n为列数 最后面的1 表示表中的索引位置
t=0:0.1:2*pi; x=3*cos(t); y=sin(t); %hold on subplot(2,2,1);plot(x,y);axis normal %normal 默认的情况 长方形 subplot(2,2,2);plot(x,y);axis square %x轴 y轴总长度相等 看起来像正方形 subplot(2,2,3);plot(x,y);axis equal %x unit 和y unit 两个单元长度相等 subplot(2,2,4);plot(x,y);axis equal tight %再equal的基础上 沿着函数图像切齐 %hold off
axis off 指向当前current plot 的坐标系 也就是最后一个 当执行此命令时,最后一个画的坐标系 会被关闭 但是函数图像 给与保留 因为在画布对象中 这两个对象没有继承关系
box off 同上指向current plot 的box 坐标系中的右侧和顶部的黑色线条 被隐藏
grid on 同上 current plot 坐标系中出现网格
将数据保存到文件当中 保存图像到文件
保存两种类型一种为位图 格式 另一种为向量(矢量)图格式 推荐后一种 放大不失真;当有其他图像时 需要使用位图
gcf 句柄 figure
高解析度 需要参考print
点击了解👉print 打印图窗或保存为特定文件格式