首页 > 其他分享 >MATLAB作图实战

MATLAB作图实战

时间:2023-07-08 20:55:10浏览次数:42  
标签:实战 subplot figure 作图 0.5 代码运行 MATLAB 所示 LineWidth

二维曲线

二维曲线是一种最为常见的曲线图表,它能反应两个变量之间的因果关系。

基本代码

>> x = linspace(1, 200, 100);
>> y1 = log(x) + 1;
>> y2 = log(x) + 2;
>> figure; % 创建一个图像窗口
>> plot(x, y1);
>> hold on % 多图共存于一个窗口
>> plot(x, y2);
>> hold off % 关闭多图共存于一个窗口
>> legend('y1', 'y2'); % 显示图例

代码运行结果如下图所示。

二维散点图

二维散点图常用来比较理论数据和实验数据的趋势关系。

>> x = linspace(1,200,100);
>> y1 = log(x) + 1;
>> y2 = y1 + rand(1, 100) - 0.5;
>> plot(x, y1, 'LineWidth', 2, 'Color', [0.21, 0.21, 0.67]);
>> hold on
>> plot(x, y2, 'o', 'LineWidth', 2, 'Color', [0.46, 0.63, 0.90], 'MarkerFaceColor', [0.35, 0.90, 0.89], 'MarkerEdgeColor', [0.18, 0.62, 0.17]);
>> hold off

代码运行结果如下图所示。

markerFaceColor用于设置内部填充颜色
markerEdgeColor用于设置外部边框颜色

二维渐变图

用不同的颜色、数据点大小表征不同的数值,更加直观。

scatter函数用法

  1. scatter(x, y)在向量x和y指定的位置创建一个包含圆形标记的散点图。
  2. 要绘制一组坐标,请将x和y指定为等长向量。
  3. 要在同一组坐标区上绘制多组坐标,请将x和y中至少一个指定为矩阵。
  4. scatter(x, y, sz)指定圆大小。要对所有圆使用相同的大小,请将sz指定为标量。要绘制不同大小的每个圆,请将sz指定为向量或矩阵。
  5. scatter(x, y, sz, c)指定圆颜色。您可以为所有圆指定为一种颜色,也可以更改颜色。例如,您可以通过将c指定为'red'来绘制所有红色圆。
  6. scatter(___, 'filled')填充圆。可以将'filled'选项与前面语法中任何的输入参数组合一起使用。

基本使用

>> 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');

代码运行结果如下图所示。

条形图

>> A = [60.689; 87.714; 143.1; 267.9515];
>> C = [127.5;160.4;231.9;400.2];
>> B = C - A;
>> figure
>> bar1 = bar([2:5:17], A, 'BarWidth', 0.2, 'FaceColor', 'k');
>> hold on
>> bar2 = bar([3:5:18], B, 'BarWidth', 0.2, 'FaceColor', [0.5,0.5,0.5]);
>> bar3 = bar([4:5:19], C, 'BarWidth', 0.2, 'FaceColor', 'w');
>> ylabel('耗时/s')
>> xlabel('GMM阶数')
>> legend('训练耗时', '测试耗时', '总耗时');
>> labelID = {'8阶', '16阶', '32阶', '64阶'};
>> set(gca, 'XTick', 3:5:20);
>> set(gca, 'XTickLabel', labelID);

代码运行结果如下图所示。

多y轴图

>> figure;
>> load('accidents.mat', 'hwydata')
>> ind = 1 : 51;
>> drivers = hwydata(:, 5);
>> yyaxis left
>> scatter(ind, drivers, 'LineWidth', 2);
>> title('Highway Data');
>> xlabel('States');
>> ylabel('Licensed Drivers(thousands)');
>> pop = hwydata(:, 7);
>> yyaxis right
>> scatter(ind, pop, 'LineWidth', 2);
>> ylabel('Vehicle Miles Traveled(millions)');

代码运行结果如下图所示。

矢量场图

二维场图

>> figure;
>> [x, y] = meshgrid(0:0.1:1, 0:0.1:1);
>> u = x;
>> v = -y;
% 该函数绘制箭头
>> quiver(x, y, u, v);

>> startx = 0.1:0.1:0.9;
>> starty = ones(size(startx));
>> streamline(x, y, u, v, startx, starty);

代码运行结果如下图所示。

三维矢量场图

>> figure;
>> [X, Y, Z] = peaks(30);
>> [U, V, W] = surfnorm(X, Y, Z);
>> quiver3(X, Y, Z, U, V, W, 0.5, 'b');
>> hold on
>> surf(X, Y, Z);
>> xlim([-3, 3]);
>> ylim([-3, 3.2]);
>> shading interp
>> hold off

代码运行结果如下图所示。

可以使用view函数进行视角转换。

view(0,90);
# 三维曲线 ```matlab >> figure >> t = 0: pi/20:10*pi; >> xt = sin(t); >> yt = cos(t); >> plot3(xt, yt, t, '-r'); ``` 代码运行结果如下图所示。

三维散点图

>> figure;
>> [X, Y, Z] = sphere(16);
>> x = [0.5 * X(:); 0.75 * X(:); X(:)];
>> y = [0.5 * Y(:); 0.75 * Y(:); Y(:)];
>> z = [0.5 * Z(:); 0.75 * Z(:); Z(:)];
>> S =  repmat([70,50,20], numel(X), 1);
>> C = repmat([1,2,3], numel(X), 1);
>> s = S(:);
>> c = C(:);
>> h = scatter3(x, y, z, s, c);
>> h.MarkerFaceColor = [0,0.5,0.5];

代码运行结果如下图所示。

三维伪彩图

>> [x, y, z] = peaks(30);
>> figure;
>> plot1 = subplot(1,2,1);
>> surf(x, y, z);
>> plot2 = subplot(1, 2, 2);
>> surf(x, y, z);
>> colormap(hot);
>> colormap(parula);
>> colormap(winter);
>> colormap(summer);
>> colormap(autumn);

代码运行结果如下图所示。

等高线图

二维等高线图

>> figure;
>> [X, Y, Z] = peaks;
>> subplot(2, 2, 1);
>> contour(X, Y, Z, 20, 'LineWidth', 1);
>> subplot(2, 2, 2);
>> contour(X, Y, Z, '--', 'LineWidth', 1);
>> subplot(2, 2, 3);
>> contour(X, Y, Z, [1,1], 'LineWidth', 1);
>> subplot(2, 2, 4);
>> 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', 'LineWidth', 1);

代码运行结果如下图所示。

三维等高线图

等高线填充图

>> figure;
>> subplot(2,2,1);
>> [X, Y, Z] = peaks(50);
>> contourf(X, Y, Z);
>> subplot(2,2,2);
>> contourf(X, Y, Z, '--');
>> subplot(2,2,3);
>> contourf(X, Y, Z, [2, 3], 'ShowText', 'on');
>> subplot(2,2,4);
>> contourf(X, Y, Z, [2,2]);

代码运行结果如下图所示。

热图

>> z = rand(50);
>> z(z>=0.0 & z < 0.6) = 0.5;
>> z(z >= 0.6 & z < 0.8) = 0.7;
>> z(z >= 0.8 & z <= 1) = 0.9;
>> for i = 1:30
z(randi(50,1,1) : end, i) = nan;
end
>> for i = 31: 50
z(30 + randi(20,1,1):end, i) = nan;
end
>> figure;
>> ax = pcolor(z);
>> view(0, 90);
>> ax.EdgeColor = [1,1,1];

代码运行结果如下图所示。

分子模型图

>> [x, y, z] = sphere(100);
>> C = 10;
>> H = 5;
>> figure;
>> surf(C * x, C * y, C * z, 'FaceColor', 'red', 'EdgeColor', 'none');
>> hold on
>> surf(H * x, H * y, H * z + 10, 'FaceColor', 'blue', 'EdgeColor', 'none');
>> surf(H * x - 4, H * y - 10, H * z - 3, 'FaceColor', 'blue', 'EdgeColor', 'none');
>> surf(H * x - 4, H * y + 10, H * z - 3, 'FaceColor', 'blue', 'EdgeColor', 'none');
>> axis equal off
>> light

使用light可以添加一个光源,使物体更加具有光泽和纹理,使用lighting none可以关闭光源。
代码运行结果如下图所示。

标签:实战,subplot,figure,作图,0.5,代码运行,MATLAB,所示,LineWidth
From: https://www.cnblogs.com/Gazikel/p/17537464.html

相关文章

  • 阵列信号处理及matlab仿真-------波束形成算法基础知识以及MMSE、MSNR和LCMV的MATLAB
    上一篇《阵列信号处理及MATLAB仿真-----阵列信号绪论》里面说了阵列信号处理研究的四个主要问题:波束形成技术、空间谱估计、信号源定位、信源分离。接下来我们就波束形成来做一个详细的学习。一、波束形成的定义:首先说一下它的物理意义,阵列天线的方向图是全方向的,但是......
  • Python Django 模版全解与实战
    本文首先介绍了Django模板系统的基础知识,接着探讨了如何安装和配置Django模板系统,然后深入解析了Django模板的基本结构、标签和过滤器的用法,阐述了如何在模板中展示模型数据,最后使用一个实际项目的例子来演示如何在实际开发中使用Django模板系统。Django模板系统的简介Django模......
  • Java版人脸跟踪三部曲之三:编码实战
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览作为《Java版人脸跟踪三部曲》系列的终篇,本文会与大家一起写出完整的人脸跟踪应用代码前文《开发设计》中,已经对人脸跟踪的核心技术、应用主流程、异常处理等方......
  • 【企业项目实战】Spring Boot 启动时加载指定方法
    ......
  • 【项目实战功能】自定义注解实现代码的执行耗时记录
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,阿里云专家博主,华为云云享专家✌......
  • 实战|如何在Linux 系统上免费托管网站
    动动发财的小手,点个赞吧!Web服务器可用于指代硬件和软件,或者两者一起工作。出于本指南的目的,我们将重点关注软件方面,并了解如何在Linux机器上托管网站。Web服务器是一种通过HTTP/HTTPS协议接收并响应客户端请求的软件程序。其主要目的是显示网站内容,这些内容通常采用文本、......
  • 基于MRPC的BERT模型实战
    目录1.数据处理(1)对每句话进行分词操作(2)对每句话进行编码操作2.创建模型(1)定义模型(2)构建BERT模型embedding层(3)词根据uncased_L-12_H-768_A-12预训练模型把8*128=1024个词映射成768维向量(4)加入额外编码特征(type_id)(5)加入位置编码特征3.transformer结构(1)self-attention......
  • N9、Transformer实战-单词预测
    ......
  • Matlab-时间换算
    %时间点设置,起止时间(时间点,如7点15分35秒→071535000。注意:起始时间为早六点060000000),精确到毫秒t1_sfm='060000000';t2_sfm='060000005';%时间对应关系换算t1=getTime(t1_sfm)t2=getTime(t2_sfm)functiont=getTime(t_sf)%时间换算子程序hour=s......
  • 万字好文:大报文问题实战
    导读大报文问题,在京东物流内较少出现,但每次出现往往是大事故,甚至导致上下游多个系统故障。大报文的背后,是不同商家业务体量不同,特别是B端业务的采购及销售出库单,一些头部商家对京东系统支持业务复杂度及容量能力的要求越来越高。因此我们有必要把这个问题重视起来,从组织上根本上......