当前位置: 首页 > news >正文

白骑士的Matlab教学进阶篇 2.1 数据可视化

系列目录

上一篇:白骑士的Matlab教学基础篇 1.5 数据输入与输出

        数据可视化是MATLAB的一个强大功能,它能够将数据以图形的形式展示出来,便于理解和分析。本文将介绍MATLAB中的基本绘图函数、绘制2D图形、绘制3D图形以及高级图形属性与定制的方法。

基本绘图函数

        MATLAB提供了一系列基本的绘图函数,用于生成各种图形。以下是一些常用的基本绘图函数:

plot:用于绘制2D线图

x = 0:0.1:10;
y = sin(x);plot(x, y);title('Sine Wave');
xlabel('x');
ylabel('sin(x)');

scatter:用于绘制2D散点图

x = randn(100, 1);
y = randn(100, 1);scatter(x, y);title('Scatter Plot');xlabel('x');
ylabel('y');

bar:用于绘制柱状图

y = [1, 2, 3, 4, 5];bar(y);title('Bar Chart');xlabel('Category');
ylabel('Value');

surf:用于绘制3D曲面图

[X, Y] = meshgrid(-5:0.5:5, -5:0.5:5);
Z = sin(sqrt(X.^2 + Y.^2));surf(X, Y, Z);title('3D Surface Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');

绘制2D图形(线图、散点图、柱状图)

绘制2D线图

        2D线图是最基本的图形之一,用于显示变量之间的关系。以下是一个简单的例子:

x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);plot(x, y1, '-r', x, y2, '--b');title('Sine and Cosine Waves');
xlabel('x');
ylabel('y');legend('sin(x)', 'cos(x)');grid on;

        在这个例子中,‘plot‘ 函数绘制了 ‘sin(x)‘ 和 ‘cos(x)‘ 的曲线,并使用不同的线型和颜色进行区分。

绘制2D散点图

        2D散点图用于显示数据点的分布情况。以下是一个简单的例子:

x = randn(100, 1);
y = randn(100, 1);scatter(x, y, 'filled');title('Scatter Plot');
xlabel('x');
ylabel('y');grid on;

        在这个例子中,‘scatter‘ 函数绘制了100个随机数据点的散点图,并使用 ‘filled‘ 参数填充点的颜色。

绘制柱状图

        柱状图用于显示类别数据的分布情况。以下是一个简单的例子:

categories = {'A', 'B', 'C', 'D', 'E'};
values = [5, 3, 9, 2, 6];bar(values);set(gca, 'XTickLabel', categories);title('Bar Chart');
xlabel('Category');
ylabel('Value');grid on;

        在这个例子中,‘bar‘ 函数绘制了一个柱状图,并将 ‘X‘ 轴标签设置为类别名。

绘制3D图形(曲面图、散点图)

绘制3D曲面图

        3D曲面图用于显示三维数据的形态。以下是一个简单的例子:

[X, Y] = meshgrid(-5:0.5:5, -5:0.5:5);
Z = sin(sqrt(X.^2 + Y.^2));surf(X, Y, Z);title('3D Surface Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');grid on;

        在这个例子中,‘surf‘ 函数绘制了 ‘sin(sqrt(X.^2 + Y.^2))‘ 的三维曲面图,并设置了坐标轴标签。

绘制3D散点图

        3D散点图用于显示三维数据点的分布情况。以下是一个简单的例子:

x = randn(100, 1);
y = randn(100, 1);
z = randn(100, 1);scatter3(x, y, z, 'filled');title('3D Scatter Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');grid on;

        在这个例子中,‘scatter3‘ 函数绘制了100个随机数据点的三维散点图,并使用 ‘filled‘ 参数填充点的颜色。

高级图形属性与定制

        MATLAB提供了丰富的图形属性设置功能,可以对图形进行高度定制。以下是一些常用的高级图形属性与定制方法:

设置图形属性

plot(x, y, 'LineWidth', 2, 'Color', 'r');title('Customized Line Plot', 'FontSize', 14);
xlabel('x', 'FontSize', 12);
ylabel('y', 'FontSize', 12);grid on;

        在这个例子中,设置了线条的宽度、颜色以及标题和坐标轴标签的字体大小。

添加图例

plot(x, y1, '-r', x, y2, '--b');
legend({'sin(x)', 'cos(x)'}, 'Location', 'northeast');

        在这个例子中,使用 ‘legend‘ 函数添加了图例,并设置了图例的位置。

添加文本注释

plot(x, y);
text(5, 0.5, 'Peak', 'FontSize', 12, 'Color', 'b');

        在这个例子中,使用 ‘text‘ 函数在图形中添加了文本注释。

设置坐标轴范围

plot(x, y);
axis([0 10 -1 1]);

        在这个例子中,使用 ‘axis‘ 函数设置了坐标轴的范围。

保存图形

plot(x, y);
saveas(gcf, 'myplot.png');

        在这个例子中,使用 ‘saveas‘ 函数将当前图形保存为PNG文件。

总结

        本文介绍了MATLAB中数据可视化的基本方法和技巧,包括基本绘图函数、2D和3D图形的绘制以及高级图形属性的定制。通过学习这些内容,读者可以熟练地在MATLAB中创建各种图形,帮助更直观地理解和分析数据。这些可视化工具不仅能够展示数据的特征和趋势,还可以为数据分析提供重要的支持,使得复杂的数据更易于解释和展示。掌握这些技能将大大提升数据处理和展示的能力,在科研和工程应用中发挥重要作用。

下一篇:白骑士的Matlab教学进阶篇 2.2 数值计算​​​​​​​

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【无标题】Unity Asset Hunter 插件
  • 【总结】TCP/IP四层模型的理解
  • PHP多商家营销活动平台系统小程序源码
  • 如何写好提示词?《Midjourney常用关键词大全》-附关键词文件
  • HTTP、HTTPS、SOCKS5 三种协议特点详解
  • 华为od(D卷)最大社交距离
  • 数学中常用的解题方法
  • cassandra-driver,一个超强大的Python库
  • vue3仿飞书头像,根据不同名称生成不同的头像背景色
  • 安卓开发中的AppCompat框架使用详解
  • 笔记结构设计:构建清晰、有逻辑的编程学习笔记
  • opencv-python图像增强二:图像去雾(暗通道去雾)
  • 【OpenCV】window 下 VS Code 配置OpenCV
  • 【阿旭机器学习实战】【38】支持向量机SVM实现手写数字识别,模型训练、评估,以及参数调优全流程
  • maven下载及配置详细介绍(2024最新攻略)
  • css选择器
  • ES学习笔记(12)--Symbol
  • js
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • leetcode46 Permutation 排列组合
  • Mysql5.6主从复制
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • python学习笔记 - ThreadLocal
  • Ruby 2.x 源代码分析:扩展 概述
  • spring + angular 实现导出excel
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • tensorflow学习笔记3——MNIST应用篇
  • Vue 重置组件到初始状态
  • vue-cli3搭建项目
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 关于List、List?、ListObject的区别
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 使用parted解决大于2T的磁盘分区
  • 手写双向链表LinkedList的几个常用功能
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 一份游戏开发学习路线
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​如何在iOS手机上查看应用日志
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (Git) gitignore基础使用
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (十八)SpringBoot之发送QQ邮件
  • (十五)使用Nexus创建Maven私服
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)基于IDEA的JAVA基础10
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)Windows2003安全设置/维护
  • .env.development、.env.production、.env.staging
  • .net 7 上传文件踩坑
  • .net 微服务 服务保护 自动重试 Polly