画图函数合集#matlab

常用二维画图函数

1.plot画图函数

Plot可以绘制二维图形,包括直线、曲线等功能十分丰富和强大

x = linspace(0, 2*pi, 100);

y1 = sin(x);

y2=zeros(1,100);

% 在plot函数中直接指定属性

plot(x, y1, 'Color', 'r', 'LineWidth', 2, 'LineStyle', '-', 'Marker', ...

'o', 'MarkerSize', 10, 'MarkerFaceColor', 'g');

fill(x,y1,'b');%用指定颜色填充x,y1构成的多边形

hold on;

%hold on 并不是必须的,但它可以使绘图过程更加灵活和方便,

% 特别是当需要在同一坐标系上多次添加图形元素时。

% 此外,你可以先创建线条,然后使用set函数来设置属性

plot(x,y2,'b-.', 'LineWidth', 2);

hold on;

h = plot(x, abs(y1));

set(h, 'Color', 'g', 'LineWidth', 2, 'LineStyle', '-', 'Marker', ...

'o', 'MarkerSize', 10, 'MarkerFaceColor', 'r');

% 添加标题和轴标签

title('Customized Plot');

xlabel('X Axis');% 添加x轴标签

ylabel('Y Axis');% 添加y轴标签

% 设置图例,并调整字体大小和位置

h1=legend('y = sin(x)','y = 0','y = |sin(x)|',...

'FontSize',12, 'Location','best','Box', 'on');

% 如果需要,您还可以进一步自定义图例的其他属性,设置图例的背景框并指定颜色

set(h1, 'Box', 'on'); % 开启背景框

set(h1, 'Color', [0.9 0.9 0.9]); % 设置背景框颜色为浅灰色

% 注意:上述代码中的 'h1' 是 legend 对象的句柄

% 如果你直接使用 legend 函数而没有保存句柄,你需要使用 gca 获取当前坐标轴的句柄,

% 然后通过 findobj 函数找到 legend 对象来设置其属性

grid on;% 显示网格

hold off;% 释放hold状态,以便进行其他操作或绘制新图形

在这段代码中,我们以plot(x,y1)为例解读该函数的用法。

使用plot函数绘制x和y1之间的数据点;'Color'参数设置线的颜色为红色('r');'LineWidth' 参数设置线的宽度为2;'LineStyle' 参数设置线的样式为实线(-);'Marker'参数设置数据点的标记样式为圆圈('o');'MarkerSize'参数设置数据点标记的大小为10;'MarkerFaceColor'参数设置数据点标记的填充颜色为绿色。

同样,legend函数设置图例,括号内的图例需要按照画图的顺序输入。此外,图例可以利用set函数设置图例的信息。同理,plot函数也可以。

注释:plot(x,y,...)函数中,只有y是必要的,其他的(x,Color,LineWidth...)参数都可根据需求选择是否省略。

以上整段代码的运行结果如下图:

2.scatter散点图

scatter:这个函数用于绘制散点图。你可以指定x轴和y轴的坐标点,并可以自定义点的颜色、大小和形状。

%% 2.散点图

X = -5:5;

Y = X.^2 - 3;

% 绘制所有点的散点图,绿色正方形

scatter(X, Y, 50, 'g', 'filled', 's', 'DisplayName', 'All Points (Green Squares)');

hold on;

% 绘制Y>0的点的散点图,红色圆形

scatter(X(Y>0), Y(Y>0), 50, 'r', 'filled', 'o', 'DisplayName', 'Y > 0 Points (Red Circles)');

% 添加图例

legend show;

hold off;

% 其他可用的标记形状包括:'.', 'o', '+', '*', 'x', 'd',

% '^', 'v', '>', '<', 'p', 'h', 'H', 's', 'D', 'd', '|', '_'

Scatter函数和plot函数用法相似,都是可以根据需要设置参数并选择是否省略该参数。不过,plot和scatter的图例设置有所不同。

以上整段代码的运行结果如下图:

常用三维画图函数

1.meshsurfplot3

用案例介绍三种不同的三维画图函数:绘制三维曲面图z=xe-x²-y²

mesh(mesh,meshc,meshz)、surf(surf,surfc,surfl)和plot3是MATLAB中用于三维绘图的函数,它们各自适用于不同的数据类型和场景。

mesh函数:

适用数据类型:mesh函数通常用于绘制三维网格曲面图,它需要三个相同维数的矩阵作为输入,分别代表x、y和z坐标的网格点。

适用情况:当需要快速查看三维数据的整体结构,而不需要详细的颜色或光照效果时,mesh函数是一个很好的选择。它生成的网格图可以清晰地显示数据的轮廓和拓扑结构。

surf函数:

适用数据类型:与mesh类似,surf函数也需要三个相同维数的矩阵作为输入,分别代表x、y和z坐标的网格点。此外,它还可以接受一个可选的颜色矩阵作为输入,用于指定曲面的颜色

适用情况:surf函数专门用于绘制三维着色曲面图,它可以产生带有颜色梯度的曲面,使数据的变化更加直观。当需要强调数据的细节、高度或颜色信息时,surf函数是一个更好的选择。

plot3函数:

适用数据类型:plot3函数用于在三维坐标系中绘制曲线、散点等图形。它接受三个向量或矩阵作为输入,分别代表x、y和z坐标的数据点。

适用情况:当需要在三维空间中绘制离散的数据点或连接的数据点时,plot3函数非常有用。例如,它可以用于绘制三维曲线、散点图或轨迹图等。

图形修饰和画图小用法

1.xlabel,ylabel,tiltle

分别为x轴,y轴和标题添加注释

2.figure函数的用法

figure(1); % 激活或创建编号为1的图形窗口

plot(1:10); % 在这个窗口中绘制一个简单的图形

close(1);  % 关闭编号为1的图形窗口

......

figure(n); % 激活或创建编号为n的图形窗口

plot(10:-1:1); % 在这个窗口中绘制另一个图形

close(n);  % 关闭编号为n的图形窗口

以下为普通或不常用画图函数

errorbar

这个函数用于绘制带有误差线的图。它对于显示实验数据的误差范围非常有用。

x = 1:5;  

y = randn(1, 5);  

e = rand(1, 5);  

errorbar(x, y, e);

stem

这个函数用于绘制离散序列的茎图(stem plot)或针状图。茎图通常用于显示数字信号或数据序列。

x = 0:0.5:4*pi;  

y = sin(x);  

stem(x, y);

%stem(x, y,'filled');

%没有'filled'是茎图,有则是针状图

bar

这个函数用于绘制条形图。你可以使用它来显示分类数据的数量或比较不同类别的值。

y = [5 10 15 20 25];  

bar(y);

hist 或 histogram

这两个函数都用于绘制直方图,但histogram函数提供了更多的自定义选项。直方图通常用于显示数据的分布。

data = randn(1, 1000);  

histogram(data);

loglog, semilogx, semilogy:这些函数用于绘制对数坐标轴的图。例如,loglog函数用于绘制两个轴都是对数的图。

area:这个函数用于绘制面积图。面积图通过堆叠颜色区域来表示数据的大小。

fill:这个函数用于在二维平面上绘制填充的多边形。

polar:这个函数用于绘制极坐标图。

loglog全对数坐标绘图

loglog函数用于创建双对数坐标图,即X轴和Y轴都是对数尺度。这在需要表示数据在多个数量级上的变化时特别有用。

%% 2. 特殊图形绘制

% 创建一些示例数据

x = 10.^(0:0.1:5); % 从10^0到10^5的等比数列

y = x.^2; % y是x的平方

% 使用loglog函数绘制数据

loglog(x, y, 'b-o'); % 蓝色实线带圆圈标记

title('全对数坐标图 (loglog)');

xlabel('X 轴 (对数尺度)');

ylabel('Y 轴 (对数尺度)');

grid on; % 添加网格线

hold off;% 释放hold状态,以便进行其他操作或绘制新图形

semilogx半对数坐标(X轴)绘图

%% 3.semilogx半对数坐标(X轴)绘图

% 创建一些示例数据

x = 10.^(0:0.1:5); % 从10^0到10^5的等比数列

y = x.^2; % y是x的平方

% 使用semilogx函数绘制数据

semilogx(x, y, 'r-s'); % 红色实线带方块标记

title('半对数坐标图 (semilogx)');

xlabel('X 轴 (对数尺度)');

ylabel('Y 轴 (线性尺度)');

grid on; % 添加网格线

hold off;

semilogy半对数坐标(Y轴)绘图

%% 4.semilogy半对数坐标(Y轴)绘图

% 创建一些示例数据

x = 0:0.1:5; % 从0到5的等差数列

y = 10.^(x.^2); % y是10的x平方次方

% 使用semilogy函数绘制数据

semilogy(x, y, 'g-*'); % 绿色虚线带星号标记

title('半对数坐标图 (semilogy)');

xlabel('X 轴 (线性尺度)');

ylabel('Y 轴 (对数尺度)');

grid on; % 添加网格线

hold off;

  • 21
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值