数学建模学习(7):Matlab绘图

这篇具有很好参考价值的文章主要介绍了数学建模学习(7):Matlab绘图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、二维图像绘制

1.绘制曲线图

最基础的二维图形绘制方法:plot

-plot命令自动打开一个图形窗口Figure; 用直线连接相邻两数据点来绘制图形
-根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x,  y 轴用对数坐标表示
-如果已经存在一个图形窗口,plot命令则清除当前图形,绘制新图形
可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图
-可任意设定曲线颜色和线型;可给图形加坐标网线和图形加注功能

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

绘制单条曲线

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

绘制多条曲线

x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

绘制多条曲线(利用矩阵)

将矩阵的每一列绘制为单独的线条

Y = magic(4);
plot(Y)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

指定线型

x = 0:pi/100:2*pi;

y1 = sin(x);

y2 = sin(x-0.25);

y3 = sin(x-0.5);

plot(x,y1,x,y2,'--',x,y3,':')

指定标记

x = 0:pi/10:2*pi;

y1 = sin(x);

y2 = sin(x-0.25);

y3 = sin(x-0.5);

plot(x,y1,'g',x,y2,'b--o',x,y3,'c*')

指定标记(在特定的点处)

x = linspace(0,10);

y = sin(x);

plot(x,y,'-o','MarkerIndices',1:5:length(y))

指定线宽、标记大小和标记颜色

x = -pi:pi/10:pi;

y = tan(sin(x)) - sin(tan(x));

plot(x,y,'--gs',...

'LineWidth',2,...

'MarkerSize',10,...

'MarkerEdgeColor','b',...

'MarkerFaceColor',[0.5,0.5,0.5])

线型查找表

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

标记查找表

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

颜色查找表

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

*交叉知识-更改颜色的Color方法

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
1.RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]。
2.十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0 到 F。这些值不区分大小写。因此,颜色代码 '#FF8800' 与 '#ff8800'、'#F80' 与 '#f80' 是等效的。

组合标记

在 LineSpec 中可对线性/颜色/标记进行同时指定
对于线性/颜色/标记的组合,其是顺序无关的,可随意排列
注意上述参数都是对曲线进行操作的,如果想更改标记颜色,需利用 Marker 系列参数

添加标题和轴标签

x = linspace(0,10,150);
y = cos(5*x);
plot(x,y,'Color',[0,0.7,0.9])
title('2-D Line Plot')
xlabel('x')
ylabel('cos(5x)')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 绘制持续时间并指定刻度格式

t = 0:seconds(30):minutes(3);
y = rand(1,7);
plot(t,y,'DurationTickFormat','mm:ss')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

*交叉知识-hold方法

hold on 保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图。MATLAB将调整坐标区的范围、刻度线和刻度标签以显示完整范围的数据。如果不存在坐标区,hold 命令会创建坐标区。

hold off 将保留状态设置为 off,从而使新添加到坐标区中的绘图清除现有绘图并重置所有的坐标区属性。添加到坐标区的下一个绘图基于坐标区的 ColorOrder 和 LineStyleOrder 属性使用第一个颜色和线型。此选项为默认行为。

x = linspace(-pi,pi);

y1 = sin(x);

plot(x,y1)

hold on

y2 = cos(x);

plot(x,y2)

hold off

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

2. 绘制散点图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建散点图

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);  
scatter(x,y)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

改变点的大小

x = linspace(0,3*pi,200);

y = cos(x) + rand(1,200);

sz = linspace(1,100,200);

scatter(x,y,sz)

scatter(x,y,1)

scatter(x,y,10)

scatter(x,y,abs(y))

改变点的颜色

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
c = linspace(1,10,length(x));
scatter(x,y,[],c)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

改变点的填充

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = 25;
c = linspace(1,10,length(x));
scatter(x,y,sz,c,'filled')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

改变标记符号

theta = linspace(0,2*pi,150);
x = sin(theta) + 0.75*rand(1,150);
y = cos(theta) + 0.75*rand(1,150);  
sz = 140;
scatter(x,y,sz,'d')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 3. 绘制直方图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建直方图

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];

bar(y)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

堆叠直方图

x = [1980 1990 2000];

y = [15 20 -5; 10 -17 21; -10 5 15];

bar(x,y,'stacked')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

更改横坐标

X = categorical({'Small','Medium','Large','Extra Large'});

X = reordercats(X,{'Small','Medium','Large','Extra Large'});

Y = [10 21 33 52];

bar(X,Y)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

4. 绘制统计图

根据数据的分布做统计直方图(老版本为hist,新版本为histogram

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建统计图

x = randn(10000,1);
histogram(x)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

更改直方个数

x = randn(1000,1);
nbins = 25;
histogram(x,nbins

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

指定每个直方柱对应的范围

x = randn(1000,1);
edges = [-10 -2:0.25:2 10];
histogram(x,edges);

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

5. 绘制饼状图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建饼状图

X = 1:3;
labels = {'Taxes','Expenses','Profit'};
pie(X,labels)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

6. 绘制阶梯图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建阶梯图

X = linspace(0,4*pi,40);
Y = sin(X);
stairs(Y)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

7. 绘制极坐标图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建极坐标图

theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta);
polarplot(theta,rho)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

8. 绘制区域图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建极区域图

Y = [1 5 3; 3 2 7; 1 5 3; 2 6 1];
area(Y)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

*交叉知识-子窗口

subplot(m,n,p) 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。MATLAB 按行号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。如果指定的位置已存在坐标区,则此命令会将该坐标区设为当前坐标区。
*若mnp均为一位数时,逗号可忽略

subplot(2,2,1);
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);title('Subplot 1: Cosine')
 
subplot(2,2,2);
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');title('Subplot 2: Polynomial')
 
subplot(2,2,[3,4]);
plot(x,y_cos,'b',x,y_poly,'g');title('Subplot 3 and 4: Both')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

二、三维图像的绘制

0. 从二维延拓

大部分二维图形提供了像三维延拓的方法

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

1. 绘制曲线图(3d)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建三维曲线图

t = 0:pi/500:40*pi;
xt = (3 + cos(sqrt(32)*t)).*cos(t);
yt = sin(sqrt(32) * t);
zt = (3 + cos(sqrt(32)*t)).*sin(t);
plot3(xt,yt,zt)
axis equal
xlabel('x(t)')
ylabel('y(t)')
zlabel('z(t)')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建三维散点图

z = linspace(0,4*pi,250);
x = 2*cos(z) + rand(1,250);
y = 2*sin(z) + rand(1,250);
scatter3(x,y,z,'filled')

scatter3(x,y,z,'filled')

scatter3(x,y,z,abs(z)+1,'filled')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 3. 绘制直方图(3d)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建三维直方图

load count.dat

Z = count(1:10,:);

width = 0.5;

bar3(Z,width)

title('Bar Width of 0.5')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建水平三维直方图

load count.dat;
Y = count(1:10,:);
width = 0.5;
figure
bar3h(Y,width)
title('Width of 0.5')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

4. 绘制统计图(3d)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建三维统计图

load carbig
X = [MPG,Weight];
hist3(X)
xlabel('MPG')
ylabel('Weight')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

5. 绘制饼状图(3d)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建三维饼状图

x = [1,3,0.5,2.5,2];
pie3(x)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

6. 绘制曲面图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 创建三维曲面图

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'FaceAlpha',0.5)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 文章来源地址https://www.toymoban.com/news/detail-619248.html

7. 绘制网格曲面图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

修改边界

[X,Y] = meshgrid(-8:.5:8);

R = sqrt(X.^2 + Y.^2) + eps;

Z = sin(R)./R;

mesh(X,Y,Z)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 *交叉知识-mesh/surf

[X,Y] = meshgrid(-8:.5:8);R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
subplot(121)
mesh(X,Y,Z)
subplot(122)
surf(X,Y,Z)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 

mesh:采用彩色的线条为基础,在其中填补白色的面
surf:  采用彩色的面为基础,在其中填补黑色的线条

*交叉知识-任意散点作图

利用griddata函数拟合均匀曲面 

load('Point.mat')
x=A(:,1);y=A(:,2);z=A(:,3);
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(  y)),'v4’);
surf(X,Y,Z)

8. 绘制等高线图

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

创建三维曲面图

x = -2:0.2:2;
y = -2:0.2:3;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2-Y.^2);
contour(X,Y,Z,'ShowText','on')

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

*交叉知识-view方法

当等高线图无法反映出图像的全部细节时,可采用view方法进行投影

[X,Y,Z] = peaks;
subplot(121)
surf(X,Y,Z)
subplot(122)
surf(X,Y,Z)
view(2)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

View可在保留色彩的同时,将三维图投影至X-Y平面

*交叉知识-绘图常用指令

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

三、句柄/窗口控制

1. 句柄方法

通过句柄可以对图像的参数进行一些后期修改

x = linspace(-2*pi,2*pi);

y1 = sin(x);

y2 = cos(x);

p = plot(x,y1,x,y2);

p(1).LineWidth = 2;

p(2).Marker = '*';

通过建立图像句柄,对第一条曲线的线宽与第二条曲线的标识进行修改
*句柄能调用的特性,必须是图像所拥有的特性

- gcf 返回当前Figure 对象的句柄值
- gca 返回当前axes 对象的句柄值
- gco 返回当前鼠标单击的句柄值

plot(0:0.01:10,sin(0:0.01:10))
xlabel('x(mm)')
ylabel('y(mm)')
set(gca,'FontName','Times New Roman','FontSize',14)

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 

通过建立图像句柄,对图像中的文字进行修改
*注意gca区分子窗口,若采用subplot需对每个sub获取句柄进行操作

*交叉知识-matlab动画

利用gcf读取当前图像窗口,添加至gif

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 

*利用plot绘制直线作为道路
*关闭坐标轴(axis  ff)
*利用scatter绘制点作为人员
*利用text添加文字

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 

clear;clc;
writerObj=VideoWriter('W3','MPEG-4'); loc_exis=zeros(1,7);
writerObj.FrameRate=100;
open(writerObj);   
filenames='test.gif';
D=randn(1,100);
for ii = 1:100
    scatter(1:ii,D(1:ii))
    xlim([1 100])
    ylim([-5,5])
    drawnow
    frame = getframe;         
    im=frame2im(frame);
    [A,mao]=rgb2ind(im,256);
    writeVideo(writerObj,frame);
    if ii==1
        imwrite(A,mao,filenames,'gif','LoopCount',Inf,'DelayTime',0.01);
    else
        imwrite(A,mao,filenames,'gif','WriteMode','append','DelayTime',0.01);
    end
end

2. 窗口控制

直接通过图像窗口对图像进行修改

图窗选项板:可进行子图控制,添加箭头等特殊标识
绘图浏览器:可直接添加和删除绘图曲线或点云等元素
属性编辑器:对图像所拥有的元素(线宽、颜色等)手动修改

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

图窗选项板

数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 数学建模学习(7):Matlab绘图,# 数学建模从入门到进阶,数学建模,学习,matlab

 

 

到了这里,关于数学建模学习(7):Matlab绘图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python数据可视化库Matplotlib绘图学习(二维)&数学建模

    如果没有出现错误,就说明安装成功。 一元二次函数图像: 运行效果: 解释: as: 重命名,将长串的函数库改一个容易书写的名字 range函数: 生成范围内所有的数字 列表推导式: 列表推导式(List Comprehension)是一种简洁地创建新列表的方法,它可以基于现有的列表、集合

    2024年02月07日
    浏览(30)
  • 数学建模------MATLAB学习使用

    多项式就是使用行向量分别表示前面的系数,这个需要按照一定的顺序,而且为0的系数不能够省略,按照从高到低的顺序进行表示; 我们接下来演示一下如何求多项式的根: 我们首先来认识一下求多项式的根的函数roots 接下来我们哪一个最高次为5的多项式举例: 这个方程

    2024年03月27日
    浏览(38)
  • 数学建模 | MATLAB数据建模方法--机器学习方法

    近年来,全国赛的题目中,多多少少都有些数据,而且数据量总体来说呈不断增加的趋势, 这是由于在科研界和工业界已积累了比较丰富的数据,伴随大数据概念的兴起及机器学习技术的发展, 这些数据需要转化成更有意义的知识或模型。 所以在建模比赛中, 只要数据量还

    2024年02月03日
    浏览(49)
  • 【数学建模学习】matlab实现评价模型——层次分析法(AHP)

    目录 1概述  2算法实现流程 3实例  4matlab实现层次分析法 5计算结果 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。层次分析法的缺陷在于判断矩阵是主观决定的,

    2024年02月04日
    浏览(40)
  • 数学建模学习(58):简单点六分钟学会matlab应用层次分析(AHP)

    这两篇呢都比较偏原理,想要模仿出来还是挺费劲,这里我们讲一下简单的套路。至少你应该从这两篇文章学会到判断矩阵怎么写出来的。 二、原理过程与套路实现 一致性指标为(一致性指标用CI计算,CI越小,说明一致性越大): 判断矩阵元素 的标度方法如下,这个我已

    2024年04月27日
    浏览(25)
  • 数学建模--Subplot绘图的Python实现

    目录 1.Subplot函数简介 2.Subplot绘图范例1:绘制规则子图 3.Subplot绘图范例2:绘制不规则子图 4.Subplot绘图范例3:gridspec辅助实战1 5.Subplot绘图范例4:gridspec辅助实战2

    2024年02月09日
    浏览(21)
  • python数学建模--绘图动态可视化图表

    本博客的灵感来源自笔者最近研究的最优化问题 在使用 模拟退火算法、遗传算法 求二元函数最值的过程中,虽然笔者已经能够通过算法得到不错的结果,但是笔者还是比较好奇算法的执行过程中,变量是怎样更新的,显然可视化是一种很好的方法 在上一篇博客【python数学建

    2024年02月06日
    浏览(31)
  • matlab数据的获取、预处理、统计、可视化、降维 | 《matlab数学建模方法与实践(第三版)》学习笔记

    一、数据的获取 1.1 从Excel中获取 使用readtable() 使用xlsread()——xlswrite() 1.2  从TXT中获取 使用load() 使用textread() 使用fopen() fread() fclose()  使用fprintf()写入信息到txt  1.3 从图片中获取 使用imread  1.4 从视频获取  使用视觉工具箱中的VideoFileReader  二、数据的预处理 2.1 缺失值处

    2024年01月19日
    浏览(51)
  • 数学建模--Seaborn库绘图基础的Python实现

    目录 1.绘图数据导入 2. sns.scatterplot绘制散点图 3.sns.barplot绘制条形图 4.sns.lineplot绘制线性图  5.sns.heatmap绘制热力图  6.sns.distplot绘制直方图  7.sns.pairplot绘制散图  8.sns.catplot绘制直方图 9.sns.countplot绘制直方图  10.sns.lmplot绘回归图        

    2024年02月10日
    浏览(21)
  • 2023年数学建模:旅行商问题:数学建模与MATLAB实现

    目录 引言 问题定义 解决策略 MATLAB实现 数学建模案例

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包