MATLAB之画图

本文将详细介绍如何用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

例如:

fullfig=figure('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,可以调节大小、边界颜色、内部颜色

例如,

>> x=0:1/pi:2*pi;

>> y=sin(x);

>> plot(x,y,'--bo','LineWidth',2,'color','blue','MarkerSize',10,'MarkerEdgeColor','black','MarkerFaceColor','red')

表示画一条如下图所示的正弦函数,'--bo'表示虚线、蓝色、采样点用圆圈标出。线形和点形以及颜色可以自由组合。

关于图注、图例、坐标轴、字体大小

命名横纵坐标

a=xlabel('Name of x axis');b=ylabel('Name of y axis');

设置标题

c=title('contents of your title');

设置图例

d=legend('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);

示例:

>> x=0:1/pi:2*pi;

>> y1=sin(x);y2=cos(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');

%创建坐标轴、标题、图例的对象

>> a=xlabel('x (time)');b=ylabel('y (m)');c=title('sin(x) and cos(x)');d=legend('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),

例如标y=0的浅色虚线:

>> 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'。如果画完参考线再加legend,legend只会标注标签名数量个数据,就不会出现把参考线也标上的情况。

标注文字: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);  

%保存图片 

I=getimage(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31493.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab画图

一、matlab线条符号、标记符、颜色 线型说明-实线(默认)–双划线:虚线:.点划线 标记符说明加号符o空心圆*星号.实心圆x叉号符s(square)正方形d菱形^上三角形v下三角形>右三角形<左三角形p(pentagram)五角星h(hexagram)六边形pentagram五角形hexagram六角形 颜色说明r红…

MATLAB 画图

目录 图形对象属性 坐标轴 散点图 Line 属性 imagesc histogram 直方图 subplot 图像保存 其他 图形对象属性 set 设置图形对象属性 set(H,Name,Value)&#xff1a;为 H 标识的对象指定其 Name 属性的值 p plot(1:10); set(p,Color,red)% 更改特定线条的颜色gca 当…

matlab plot绘图函数官方详解

plot&#xff1a; 二维线图函数 语法 plot(X,Y) plot(X,Y,LineSpec) plot(X1,Y1,...,Xn,Yn) plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) plot(Y) plot(Y,LineSpec) plot(___,Name,Value) plot(ax,___) h plot(___) 说明 plot(X,Y) 创建 Y 中数据对 X 中对应值的二…

使用matlab画图中图

又到一年论文季&#xff0c;没想到临近投稿的我居然会被图片的清晰度打败&#xff0c;需要子母图的时候&#xff0c;我直接使用powerpoint进行拼接&#xff0c;多次png另存为&#xff0c;图已经糊出了新高度&#xff0c;那种超级糊图在论文里应该是投不出去的吧。。。但是&…

MATLAB 绘图

一、绘图的基本步骤 在MATLAB中绘制图形&#xff0c;通常采用以下7个步骤 1.准备数据 准备好绘图需要的横坐标变量和纵坐标变量数据。 2.设置当前绘图区 在指定的位置创建新的绘图窗口&#xff0c;并自动以此窗口的绘图为当前绘图区。 3.绘制图形 创建坐标轴&#xff0c;指定叠…

【Matlab】MATLAB绘图

专题四 MATLAB绘图 绘图的目的是使数据可视化。 一 二维曲线 1. 函数plot() 在MATLAB中,函数plot()是最基本的绘图函数,利用它可以绘制出不同的二维曲线。函数plot()的基本用法: plot(x, y) % 其中,x和y分别用于存储x坐标和y坐标数据,通常x和y是长度相等的向…

MATLAB绘图

在MATLAB中绘制函数图形的步骤如下&#xff1a; 先定义变量 x&#xff0c;通过指定的变量 x 值的范围&#xff0c;该函数被绘制&#xff1b; 然后定义函数&#xff0c; y f(x)&#xff1b; 最后调用 plot 命令&#xff0c;如 plot(x, y)。 接下来我们通过例子绘制简单的函…

Matlab绘图合集:plot 绘图

本文主要介绍MATLAB 中plot函数画图的基本用法。 语法 plot(X,Y) plot(X,Y,LineSpec) plot(X1,Y1,...,Xn,Yn) plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) plot(Y) plot(Y,LineSpec) plot(tbl,xvar,yvar) plot(tbl,yvar) plot(ax,___) plot(___,Name,Value) p plot(___) 创建…

ChatGPT商业软件集成开发项目

作为一个语言模型&#xff0c;ChatGPT的主要功能是回答用户提出的问题和生成相关内容。以下是一些ChatGPT可能提供的功能&#xff1a; 回答问题&#xff1a;ChatGPT可以回答各种类型的问题&#xff0c;包括常见问题、技术问题、文化问题等。 生成文本&#xff1a;ChatG…

2022 年度盘点 | 更成熟的 AI,更破圈的技术狂欢

内容一览&#xff1a;2022 年 AI 领域发展不断提速&#xff0c;新技术成果纷纷落地&#xff0c;模型迭代加速升级。本文总结了 2022 年 AI 领域各大公司的技术成就。 关键词&#xff1a;年终盘点 大厂 技术创新 2022 年在此起彼伏的咳嗽声中接近尾声&#xff0c;这一年&…

给大模型持久记忆!GitHub 2万星向量数据库云服务升级,国内云产品7月上线

允中 发自 凹非寺量子位 | 公众号 QbitAI 一个在GitHub上标星超2万的数据库&#xff0c;究竟是什么来头&#xff1f; 原来&#xff0c;这正是最近大火的向量数据库之一、首个在这一赛道开源产品Milvus。 自大模型爆火以来&#xff0c;它的关注度也一路飙升&#xff0c;官方显示…

ModaHub魔搭社区:给大模型持久记忆!GitHub2万星向量数据库服务升级,国内7月上线

一个在GitHub上标星超2万的数据库,究竟是什么来头? 原来,这正是最近大火的向量数据库之一、首个在这一赛道开源产品Milvus。 自大模型爆火以来,它的关注度也一路飙升,官方显示,目前Milvus已经拥有超过1000+企业用户。 而就是这么一个GitHub上最流行的向量数据库,背后公…

如何设计一个面向开发者全生命周期成本的全托管向量检索服务产品?

向量数据库的新趋势已然开始显现&#xff01; 2023 年初&#xff0c;我曾预测过今年向量数据库发展的八大趋势《向量数据库的下一站&#xff0c;2023 的 8 个预测》&#xff0c;其中提到&#xff1a;向量数据库会出现分叉和分层&#xff0c;离线与在线将共存&#xff0c;单机与…

4 个月、2 万颗星,1 个恒纪元

1, 10,000 15,000 20,000 Milvus 以 4 个月 5 千星的速度迈入 20,000 Star 项目的队列&#xff0c;这意味着有越来越多的开发者看到并认可 Milvus&#xff0c;为 Milvus 进入 AIGC 恒纪元注入了更多力量。 01.从“什么是向量数据库”到“大模型记忆体” 2019 年&#xff0c;我们…

给大模型持久记忆!GitHub 2万星向量数据库云服务升级,国内云产品下周上线

一个在GitHub上标星超2万的数据库&#xff0c;究竟是什么来头&#xff1f; 原来&#xff0c;这正是最近大火的向量数据库之一、首个在这一赛道开源产品Milvus。 自大模型爆火以来&#xff0c;它的关注度也一路飙升&#xff0c;官方显示&#xff0c;目前Milvus已经拥有超过1000企…

开源铸剑,五载匠心!Zilliz Cloud云服务盛装登场,引领向量数据库云时代!

2023 年注定是属于大模型和向量数据库的巅峰时刻。国内大模型的发展也迎来前所未有之机遇&#xff0c;“百模”激战正酣。在刚闭幕的世界人工智能大会上&#xff0c;国内外科技公司全线加入&#xff0c;三十余款大模型集中亮相&#xff0c;“国家队”尘埃落定&#xff0c;并正式…

璀璨五年,磨砺一剑!Zilliz Cloud云服务国内正式登场,定义大模型时代向量数据库的新纪元!...

2023 年注定是属于大模型和向量数据库的巅峰时刻。国内大模型的发展也迎来前所未有之机遇&#xff0c;“百模”激战正酣。在刚闭幕的世界人工智能大会上&#xff0c;国内外科技公司全线加入&#xff0c;三十余款大模型集中亮相&#xff0c;“国家队”尘埃落定&#xff0c;并正式…

头部大模型公司进京赶考,向量数据库成为应考神器

日前&#xff0c;由品玩主办的「模型思辨」国内大模型产业生态研讨会在北京举办&#xff0c;Zilliz 与 360 集团、阿里巴巴、昆仑万维等来自大模型产业链的头部公司及投资机构参会&#xff0c;会上 Zilliz 创始人兼首席执行官星爵、360 集团创始人周鸿祎、昆仑万维创始人方汉等…

毛利率新高、现金流转正,“单纯”的金山云充满想象空间

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 5月23日&#xff0c;金山云发布了2023年一季度财报。根据财报显示&#xff0c;金山云Q1营收为18.6亿元&#xff0c;同比下滑14.2%&#xff0c;净亏损6.1亿元。尽管营收和利润较去年同期表现较差&#xff0c;但是毛利率达到了…

数字化价值赋能金融,CSDN行业技术峰会·金融科技深圳站圆满落幕

出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 随着移动互联网、大数据、云计算、人工智能等科技的普及和应用&#xff0c;金融行业也开始向数字化、智能化、个性化的方向转变&#xff0c;为用户提供更加便捷、快速、个性化的服务。创新技术如何赋能金融行业&…