如何在MATLAB中创建各种常用的图形

本文将介绍如何在MATLAB中创建各种常用的图形。将涵盖以下内容:

  1. 基本的二维图形

    • 折线图(Line Plot)
    • 散点图(Scatter Plot)
    • 条形图(Bar Plot)
    • 面积图(Area Plot)
  2. 三维图形

    • 三维曲面图(3D Surface Plot)
    • 三维散点图(3D Scatter Plot)
    • 三维条形图(3D Bar Plot)
  3. 特殊图形

    • 极坐标图(Polar Plot)
    • 热图(Heatmap)
    • 雷达图(Radar Chart)
  4. 多图和子图

    • 多图并排显示(Multiple Plots in One Figure)
    • 子图(Subplots)
  5. 数据动画

    • 动态更新图形(Animating Plots)

将为每种图形提供详细的示例代码,并解释每个图形的常见用法和调整技巧。

1. 基本的二维图形

折线图(Line Plot)

        折线图是最常见的图形之一,用于显示数据点之间的连接。

% 生成数据
x = 0:0.1:10;
y = sin(x);% 创建折线图
figure;
plot(x, y, '-o', 'LineWidth', 2, 'MarkerSize', 6, 'MarkerFaceColor', 'blue'); % 使用 'o' 标记数据点,设置线宽和标记大小
title('Sine Wave'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
legend({'sin(x)'}, 'Location', 'northeast'); % 添加图例
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

散点图(Scatter Plot)

        散点图用于显示两个变量之间的关系。

% 生成随机数据
x = randn(1, 100);
y = randn(1, 100);
c = sqrt(x.^2 + y.^2); % 用于着色的数据% 创建散点图
figure;
scatter(x, y, 50, c, 'filled'); % '50' 表示标记大小,'c' 用于颜色,'filled' 表示填充标记
title('Scatter Plot with Color Mapping'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
colorbar; % 添加颜色条
legend({'Data Points'}, 'Location', 'northeast'); % 添加图例
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

条形图(Bar Plot)

        条形图用于比较不同类别的数据。

% 生成数据
categories = {'A', 'B', 'C', 'D'};
values = [10, 23, 17, 5];% 创建条形图
figure;
bar(values, 'FaceColor', [0.2, 0.2, 0.5]); % 设置条形的颜色
set(gca, 'xticklabel', categories); % 设置 X 轴的类别标签
title('Bar Plot'); % 设置标题
xlabel('Categories'); % 设置 X 轴标签
ylabel('Values'); % 设置 Y 轴标签
legend({'Category Values'}, 'Location', 'northeast'); % 添加图例
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

面积图(Area Plot)

        面积图显示的是累积的数据,可以用来表示随时间变化的量。

% 生成数据
x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);% 创建面积图
figure;
area(x, [y1; y2]', 'LineWidth', 1.5); % 设置线宽
title('Area Plot of Sine and Cosine Functions'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
legend({'sin(x)', 'cos(x)'}, 'Location', 'northeast'); % 添加图例
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

2. 三维图形

三维曲面图(3D Surface Plot)

        三维曲面图用于显示数据的三维分布。

% 生成数据
[x, y] = meshgrid(-3:0.1:3, -3:0.1:3);
z = peaks(x, y);% 创建三维曲面图
figure;
surf(x, y, z, 'EdgeColor', 'none'); % 'EdgeColor' 设置为 'none' 来去掉网格线
title('3D Surface Plot of Peaks Function'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
zlabel('Z-axis'); % 设置 Z 轴标签
colorbar; % 添加颜色条
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小
view(3); % 设置三维视图

三维散点图(3D Scatter Plot)

        三维散点图用于显示三维空间中的数据点。我们将数据点着色并添加图例。

% 生成数据
x = randn(1, 100);
y = randn(1, 100);
z = randn(1, 100);
c = sqrt(x.^2 + y.^2 + z.^2); % 用于着色的数据% 创建三维散点图
figure;
scatter3(x, y, z, 50, c, 'filled'); % '50' 表示标记大小,'c' 用于颜色,'filled' 表示填充标记
title('3D Scatter Plot with Color Mapping'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
zlabel('Z-axis'); % 设置 Z 轴标签
colorbar; % 添加颜色条
legend({'Data Points'}, 'Location', 'northeast'); % 添加图例
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小
view(3); % 设置三维视图

三维条形图(3D Bar Plot)

        三维条形图用于显示三维数据的柱状图。

% 生成数据
values = randi(10, 5, 5);% 创建三维条形图
figure;
bar3(values, 'detached'); % 'detached' 选项将条形分离
title('3D Bar Plot'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
zlabel('Values'); % 设置 Z 轴标签
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

3. 特殊图形

极坐标图(Polar Plot)

        极坐标图用于表示极坐标数据。

% 生成数据
theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta);% 创建极坐标图
figure;
polarplot(theta, rho, 'LineWidth', 2); % 设置线宽
title('Polar Plot of sin(2\theta)cos(2\theta)'); % 设置标题
legend({'Polar Function'}, 'Location', 'northeast'); % 添加图例
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

热图(Heatmap)

        热图用于显示数据矩阵的值的热力分布。

% 生成数据
data = rand(10, 10);% 创建热图
figure;
heatmap(data, 'Colormap', parula, 'ColorbarVisible', 'on'); % 使用 parula 配色,打开颜色条
title('Heatmap of Random Data'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

雷达图(Radar Chart)

        雷达图用于显示多个变量的数据。

% 生成数据
data = [5 3 9 1 6];
categories = {'Speed', 'Strength', 'Agility', 'Endurance', 'Intelligence'};% 创建雷达图
figure;
polarplot(data, '-o', 'LineWidth', 2, 'MarkerSize', 6, 'MarkerFaceColor', 'blue'); % 设置线宽和标记大小
thetalim([0 360]); % 设置极坐标的角度范围
title('Radar Chart'); % 设置标题
ax = gca;
ax.ThetaTick = 0:72:360; % 设置类别的角度分布
ax.ThetaTickLabel = categories; % 设置类别标签
legend({'Attributes'}, 'Location', 'northeast'); % 添加图例
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

4. 多图和子图

多图并排显示(Multiple Plots in One Figure)

        在同一张图上显示多个图形。

% 生成数据
x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);% 创建多图
figure;
plot(x, y1, '-o', 'LineWidth', 2, 'MarkerSize', 6, 'MarkerFaceColor', 'red'); % 设置线宽和标记大小
hold on;
plot(x, y2, '-x', 'LineWidth', 2, 'MarkerSize', 6, 'MarkerFaceColor', 'green'); % 设置线宽和标记大小
hold off;
title('Multiple Plots of Sine and Cosine'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
legend({'sin(x)', 'cos(x)'}, 'Location', 'northeast'); % 添加图例
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

子图(Subplots)

        将多个图形显示在一个图形窗口中。

% 生成数据
x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);% 创建子图
figure;subplot(2, 1, 1); % 创建第一个子图
plot(x, y1, '-o', 'LineWidth', 2, 'MarkerSize', 6, 'MarkerFaceColor', 'blue'); % 设置线宽和标记大小
title('Subplot 1: Sine Function'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
grid on; % 打开网格线
legend({'sin(x)'}, 'Location', 'northeast'); % 添加图例
set(gca, 'FontSize', 12); % 设置坐标轴字体大小subplot(2, 1, 2); % 创建第二个子图
plot(x, y2, '-x', 'LineWidth', 2, 'MarkerSize', 6, 'MarkerFaceColor', 'red'); % 设置线宽和标记大小
title('Subplot 2: Cosine Function'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
grid on; % 打开网格线
legend({'cos(x)'}, 'Location', 'northeast'); % 添加图例
set(gca, 'FontSize', 12); % 设置坐标轴字体大小

5. 数据动画

 动态更新图形(Animating Plots)

        使用MATLAB的动画功能动态更新图形。

% 生成数据
x = 0:0.1:10;% 创建动画
figure;
h = plot(x, sin(x), '-o', 'LineWidth', 2, 'MarkerSize', 6, 'MarkerFaceColor', 'blue'); % 设置线宽和标记大小
title('Animating Plot of Sine Wave'); % 设置标题
xlabel('X-axis'); % 设置 X 轴标签
ylabel('Y-axis'); % 设置 Y 轴标签
grid on; % 打开网格线
set(gca, 'FontSize', 12); % 设置坐标轴字体大小% 动画循环
for k = 1:100y = sin(x + 0.1*k); % 动态更新 y 数据set(h, 'YData', y); % 更新图形数据drawnow; % 实时刷新图形pause(0.1); % 暂停以控制动画速度
end

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

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

相关文章

WACV2024论文3D相关速览48篇

WACV2024 3D相关论文阅读 Paper1 Self-Supervised Edge Detection Reconstruction for Topology-Informed 3D Axon Segmentation and Centerline Detection 摘要小结: 许多基于机器学习的轴突追踪方法依赖于带有分割标签的图像数据集。这需要领域专家的手动标注,既…

R语言——绘图与数据可视化

1、练习将25个点的符号绘制出来,然后用rainbow()返回25个颜色,后5个符号形状的背景颜色用蓝色填充,图的标题为"符号图",x轴标题为符号索引,y轴标题为符号形状。 2、根据员工的销售业绩画饼状图,添…

[保姆级教程]在uniapp中使用vant框架

文章目录 导文安装 Vant在uniapp项目中的pages.json中配置easycom,实现组件的自动按需引入:在页面中使用Vant Weapp组件,例如使用按钮组件(Button):其他安装报错官网地址 导文 在 uni-app 中使用 Vant 框架…

关于OS中逻辑地址与物理地址转换

首先将逻辑地址134D从十六进制转为2进制 0001 0011 0100 1101 1)1K的时候对应2的10次方 页面大小占10位 从后往前数 0001 00 || 11 0100 1101 前面的转为十进制为4 对应页号4内容1A转为2进制01 1010将这个替换原来的前六位数字 即0110 1011 0100 1101 再转换为…

智慧工厂监控可视化解决方案(160页WORD)

方案介绍: 本智慧工厂监控可视化解决方案通过集成先进的物联网和大数据技术,为制造业企业提供了全面的数字化转型支持。通过实时监控、数据分析、可视化展示等功能,帮助企业提升生产效率、降低运营成本、优化产品质量和能源利用率&#xff0…

C# 语言在AGI 赛道上能做什么

自从2022年11月OpenAI正式对外发布ChatGPT依赖,AGI 这条赛道上就挤满了重量级的选手,各大头部公司纷纷下场布局。原本就在机器学习、深度学习领域占据No.1的Python语言更是继续稳固了自己AI一哥的位置。凭借着Microsoft 和 OpenAI 长期以来一直是紧密相连…

【CT】LeetCode手撕—300. 最长递增子序列

目录 题目1- 思路2- 实现⭐300. 最长递增子序列——题解思路 3- ACM 实现 题目 原题连接&#xff1a;300. 最长递增子序列 1- 思路 模式识别&#xff1a;最长递增子序列——> 利用动规五部曲 解决 ——> 借助 i 和 j 指针&#xff0c;其中 j < i 动规五部曲 1.定义…

【功能详解】银河麒麟操作系统“安全启动”是如何发挥作用的?

2023年12月&#xff0c;财政部、工信部发布了7项信息类产品《政府采购需求标准》&#xff0c;为包括操作系统在内多项产品的政府集中采购提供政策支撑。其中&#xff0c;安全、可信作为国产操作系统的基本要求备受关注。 安全体系的构建离不开操作系统本身的硬实力&#xff0c…

LabVIEW项目管理中如何平衡成本、时间和质量

在LabVIEW项目管理中&#xff0c;平衡成本、时间和质量是实现项目成功的关键。通过制定详细的项目计划、合理分配资源、严格控制进度、进行质量保证和灵活应对变化&#xff0c;项目管理者可以有效地协调这三者的关系&#xff0c;确保项目按时、按质、按预算完成。 1. 制定详细…

CVPR最佳论文:谷歌基于Spectral Volume从单图生成视频

一、摘要&#xff1a; 论文&#xff1a;Generative Image Dynamics&#xff0c;https://arxiv.org/pdf/2309.07906 项目主页&#xff1a;https://generative-dynamics.github.io/ 本文提出了一种新颖的方法来模拟场景运动的图像空间先验。通过从真实视频序列中提取的自然振荡…

高考志愿填报:选择好专业还是好学校?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 高考志愿填报&#xff1a;选择好专业还是好学校&#xff1f; 每年高考结束后&#xff0c;考生和家长面临的一个…

MEMS环境传感器生产测试的挑战与未来趋势

微机电系统 (MEMS) 环境传感器无处不在&#xff0c;默默地支撑着我们日常生活中众多设备的功能。从智能手机和可穿戴设备到智能家居和工业自动化&#xff0c;这些微型产品可以测量温度、压力、湿度和大量其他环境参数。 由于环境监测需求不断增长以及空气质量严格法规的实施&am…

Ubuntu 18.04 安装 PCL 1.14.1

在进行科研项目时&#xff0c;我们常常需要将 C 和 Python 结合起来编程。然而&#xff0c;每次将 PCL&#xff08;Point Cloud Library&#xff09;的内容添加到 CMakeLists.txt 文件中时都会报错。在深入分析后&#xff0c;我们推测可能是当前使用的 PCL 1.8 版本与现有程序不…

Instagram APIj接口——快速获取Ins帖子媒体内容下载链接

一、引言 在社交媒体蓬勃发展的今天&#xff0c;Instagram已成为用户分享照片、视频和精彩瞬间的首选平台。然而&#xff0c;对于很多用户来说&#xff0c;想要保存或分享Instagram上的精彩内容却常常遇到困扰。为了解决这个问题&#xff0c;我们精心打造了一款全新的Instagra…

视频云沉浸式音视频技术能力探索与建设

概述 随着传输技术、显示技术与算力的持续提升&#xff0c;用户对于音视频体验的需求在提高&#xff0c;各家设备厂商也在探索和推出对应的技术与产品。打造空间感的空间视频与空间音频是其中最为关键的2项技术&#xff0c;bilibili视频云在这两项技术领域也进行了相关代探索与…

优惠卷秒杀(并发问题)

Redis实战篇 | Kyles Blog (cyborg2077.github.io) 目录 一、Redis实现全局唯一id 二、添加优惠卷 三、实现秒杀下单 四、解决超卖问题&#xff08;库存为负&#xff09; 乐观锁解决超卖问题&#xff08;CAS法&#xff09; 五、实现一人一单 ​编辑 悲观锁解决一人一单问题…

自主可控的工业操作系统

supOS是蓝卓自主研发、拥有自主知识产权的工业操作系统&#xff0c;向下可以连接各种设备和信息系统&#xff0c;将所有数据汇聚到“统一的底座”&#xff0c;向上可以打通各种各样的应用系统&#xff0c;各类生态企业可以在系统之上打造出丰富的工业APP&#xff0c;让我们的工…

有没有屏幕悬浮翻译软件?打开窗口即可实时翻译

随着#高考结束该出发看世界了#这一话题的火热&#xff0c;对于不能远行的朋友&#xff0c;网上冲浪是了解世界的好方式。 然而&#xff0c;面对外语网页、资料或视频&#xff0c;英语不流利的小伙伴可能会有些困扰。别急&#xff0c;悬浮翻译软件能帮你将屏幕上的外语文字即时…

从WebM到MP3:利用Python和wxPython提取音乐的魔法

前言 有没有遇到过这样的问题&#xff1a;你有一个包含多首歌曲的WebM视频文件&#xff0c;但你只想提取其中的每一首歌曲&#xff0c;并将它们保存为单独的MP3文件&#xff1f;这听起来可能有些复杂&#xff0c;但借助Python和几个强大的库&#xff0c;这个任务变得异常简单。…

第二证券:港股、a股、美股的区别?存在以下七大区别

港股、a股、美股是三大重要的股票市场&#xff0c;其间它们之间存在以下差别&#xff1a; ​ 1、界说不同 A股&#xff0c;即公民币普 通股&#xff0c;是由中国境内公司发行供境内机构、组织或个人以公民 币认购和生意的普通股股票。 港股也叫H股&#xff0c;在香港联合生…