网站建设签约,仿网站视频教程,ui设计最常用的软件,货源网本文将详细介绍如何用matlab绘图并美化。
关于figure()
创建图窗窗口#xff1a;figure()
figure()的属性#xff1a;
Name#xff1a;在标题栏显示的名称#xff0c;接字符串#xff0c;如Test
Position#xff1a;在电脑屏幕上的位置和大小#xff0c;后接向量[l…本文将详细介绍如何用matlab绘图并美化。
关于figure()
创建图窗窗口figure()
figure()的属性
Name在标题栏显示的名称接字符串如Test
Position在电脑屏幕上的位置和大小后接向量[left,bottom,width,height]也就是说指定了图窗的左下角位置再向右width、向上height延伸。
unit单位可以选择normalized使得位置参数为屏幕的归一化位置屏幕归一化坐标(x,y)(0,0)表示左下角(1,1)表示右上角。 我的桌面
color图窗背景颜色red、green、blue、cyan、magenta、yellow、black、white 和 none其中none表示透明。或者RGB三通道表示法[R,G,B]其中三分量都要归一化到1即R/255,G/255,B/255。 https://ww2.mathworks.cn/help/matlab/ref/figure.html
例如
fullfigfigure(Name,Hello,unit,normalized,Position,[0.1, 0.1, 0.3, 0.7],color,[100/255,100/255,100/255]);
将会产生左下角位置在[0.1,0.1]、长0.3宽0.7的图窗其名字为Hello其背景颜色为[100/255,100/255,100/255]也就是灰色。 关于plot()
plot(x,y)画图
LineWidth线条宽度最小是1
color线条颜色同上
LineSpec这里直接表示线的形状不用写LineSpec https://www.mathworks.com/help/matlab/ref/linespec.html MarkerSize、MarkerEdgeColor、 MarkerFaceColor如果线形使用Marker可以调节大小、边界颜色、内部颜色 例如 x0:1/pi:2*pi; ysin(x); plot(x,y,--bo,LineWidth,2,color,blue,MarkerSize,10,MarkerEdgeColor,black,MarkerFaceColor,red)
表示画一条如下图所示的正弦函数--bo表示虚线、蓝色、采样点用圆圈标出。线形和点形以及颜色可以自由组合。 关于图注、图例、坐标轴、字体大小
命名横纵坐标
axlabel(Name of x axis);bylabel(Name of y axis);
设置标题
ctitle(contents of your title);
设置图例
dlegend(y1,y2);
设置上述内容的位置、字体大小、粗细
set(a,unit,normalized,Position,[x,y],FontSize,number_fontsize,FontName,name_of_font_style)
set(a,unit,normalized,Position,[x,y,width,height],FontSize,number_fontsize,FontName,name_of_font_style,LineWidth,number_linewidth);
示例 x0:1/pi:2*pi; y1sin(x);y2cos(x);
%创建图窗% figure(color,white)
%画sin(x)和cos(x)图% plot(x,y1,--bo,LineWidth,2,color,blue,MarkerSize,10,MarkerEdgeColor,black,MarkerFaceColor,red); hold on;plot(x,y2,--g*,LineWidth,2,color,blue,MarkerSize,10,MarkerEdgeColor,black,MarkerFaceColor,red);
%创建坐标轴、标题、图例的对象 axlabel(x (time));bylabel(y (m));ctitle(sin(x) and cos(x));dlegend(sin(x),cos(x));
%位置、大小、字体大小、字体样式设置 set(a,unit,normalized,Position,[0,-0.05],fontsize,15,fontname,Times New Roman); set(b,unit,normalized,Position,[-0.05,1],fontsize,15,fontname,Times New Roman); set(c,fontsize,15,fontname,Times New Roman); set(d,unit,normalized,Position,[0.2,0.2,0.1,0.1],fontsize,10)
%图窗所有线条粗细设置为2 set(gca,LineWidth,2)
%开启网格 grid on;
%设置x轴、y轴的显示范围 xlim([0 2*pi]) ylim([-1.1 1.1])
%注如果想画到上限只需用inf代替上限 关于非常规坐标轴 set(gca,YDir,reverse); set(gca,YDir,normal);
y坐标轴反向或正常 半对数、对数画图
semilogx(x,y);loglog(x,y) 关于参考线、参考点、标注点
横线实现方式
利用ones(m,n)生成与y相同的纯1向量再给它乘上你要标注的数
size(y)返回y的行列值对(m,n)
例如标y0的浅色虚线 hold on;plot(x,0*ones(size(y)),--,LineWidth,1,color,[100/255,100/255,100/255]);
竖线实现方式
利用plot()两点成线
plot([x0,x0],[y_min,y_max]);
例如在Pi/2处画从0到1的竖虚线 hold on;plot([pi/2,pi/2],[0,1],--,LineWidth,1,color,[100/255,100/255,100/255]); 小细节如果先加图例图例会把你画的横竖线也标上data 1,data 2。如果画完参考线再加legendlegend只会标注标签名数量个数据就不会出现把参考线也标上的情况。 标注文字text(x,y,contents) text(pi,0,\leftarrow sin(\pi),fontsize,15); 多个图subplot(m,n,index)由matlab根据选定的m行n列自动设置子图尺寸 https://ww2.mathworks.cn/help/matlab/ref/subplot.html
或者需要精细化设置位置
%设置当前图窗单位为归一化 set(gcf,color,none,unit,normalized,position,[0,0,1,1]);
%设置左下角出现在(0.2,0.22)位置宽0.55高0.4 positionVector1 [0.2, 0.55, 0.22, 0.4]; subplot(Position,positionVector) 这里画子图下面的操作和上面都一样唯一要记住的是每一个subplot都相当于一个figure()这就是说你在每个subplot下面写的xlabel、title、legend之类的都只会设置subplot下面的图。
子图示例
%子图一
%设置子图位置
positionVector1 [0.2, 0.55, 0.22, 0.4];
subplot(Position,positionVector1)
%画图
plot(A(:,2),(A(:,1)/1000),LineWidth,2,color,black);
%画参考线
hold on;plot(zeros(size(A(:,2))),(A(:,1)/1000),--,LineWidth,1,color,[100/255,100/255,100/255]);
%设置坐标轴范围
ylim([0 6371]);xlim([-2*max(abs(A(:,2))) 2*max(abs(A(:,2)))]);
%画参考线
hold on;plot([-2*max(abs(A(:,2))) 2*max(abs(A(:,2)))],[6371-670 6371-670],--,LineWidth,1,color,[100/255,100/255,100/255])
hold on;plot([-2*max(abs(A(:,2))) 2*max(abs(A(:,2)))],[6371-2890 6371-2890],--,LineWidth,1,color,[100/255,100/255,100/255])
hold on;plot([-2*max(abs(A(:,2))) 2*max(abs(A(:,2)))],[6371-5150 6371-5150],--,LineWidth,1,color,[100/255,100/255,100/255])
%给坐标轴命名
ylabel(r (km));xlabel(U(r)); set(gca,YDir,reverse);
%修改子图线条粗细
set(gca,LineWidth,3,fontsize,15); positionVector2 [0.58, 0.55, 0.22, 0.4];
subplot(Position,positionVector2)
plot(A(:,3),(A(:,1)/1000),LineWidth,2,color,black);
hold on;plot(zeros(size(A(:,3))),flip(A(:,1)/1000),--,LineWidth,1,color,[100/255,100/255,100/255]);
ylim([0 6371]);xlim([-2*max(abs(A(:,3))) 2*max(abs(A(:,3)))])
hold on;plot([-2*max(abs(A(:,3))) 2*max(abs(A(:,3)))],[6371-670 6371-670],--,LineWidth,1,color,[100/255,100/255,100/255])
hold on;plot([-2*max(abs(A(:,3))) 2*max(abs(A(:,3)))],[6371-2890 6371-2890],--,LineWidth,1,color,[100/255,100/255,100/255])
hold on;plot([-2*max(abs(A(:,3))) 2*max(abs(A(:,3)))],[6371-5150 6371-5150],--,LineWidth,1,color,[100/255,100/255,100/255])
ylabel(raduis (km));xlabel(dU(r)/dr); %set(gca,YDir,reverse);
set(gca,LineWidth,3,fontsize,15); positionVector3 [0.2, 0.07, 0.22, 0.4];
subplot(Position,positionVector3)
plot(zeros(size(A(:,1))),(A(:,1)/1000),--,LineWidth,1,color,[100/255,100/255,100/255]);
ylim([0 6371]);xlim([-1 1])
hold on;plot([-1 1],[6371-670 6371-670],--,LineWidth,1,color,[100/255,100/255,100/255])
hold on;plot([-1 1],[6371-2890 6371-2890],--,LineWidth,1,color,[100/255,100/255,100/255])
hold on;plot([-1 1],[6371-5150 6371-5150],--,LineWidth,1,color,[100/255,100/255,100/255])
ylabel(raduis (km));xlabel(V(r)); %set(gca,YDir,reverse);
set(gca,LineWidth,3,fontsize,15); positionVector4 [0.58, 0.07, 0.22, 0.4];
subplot(Position,positionVector4)
plot(zeros(size(A(:,1))),(A(:,1)/1000),--,LineWidth,1,color,[100/255,100/255,100/255]);
ylim([0 6371]);xlim([-1 1])
hold on;plot([-1 1],[6371-670 6371-670],--,LineWidth,1,color,[100/255,100/255,100/255])
hold on;plot([-1 1],[6371-2890 6371-2890],--,LineWidth,1,color,[100/255,100/255,100/255])
hold on;plot([-1 1],[6371-5150 6371-5150],--,LineWidth,1,color,[100/255,100/255,100/255])
ylabel(raduis (km));xlabel(dV(r)/dr);% set(gca,YDir,reverse);
set(gca,LineWidth,3,fontsize,15);
%设置总标题
name[_{ num2str(n) }S_{ num2str(l) }];%latex
sgt sgtitle(name);sgt.FontSize 30;
%加文字
config[ Eigf num2str(Eigf) ,Gv num2str(Gv) ,Q num2str(Q) Err num2str(Err)];
suptitle(config);
%保存图片
Igetimage(gcf);
pngname[ num2str(n) S num2str(l)];
saveas(fullfig,[filepath pngname .png]);
最后成图 那么如何给图加标题呢
matlab2020之前有suptitle函数matlab2020有sgtitle函数和title函数差不多。 另外还有画三维图时加colorbar的细节
https://www.mathworks.com/help/matlab/ref/colorbar.html