18种代码20个绘图技巧。
简单易上手适合小白学习
MATLAB(Matrix Laboratory)是一款功能强大的数学软件,广泛应用于算法开发、数据可视化、数据分析以及数值计算等领域。在MATLAB中,绘图是其核心功能之一,支持绘制各种类型的图形,如箱式图(Box Plot)、热力图(Heatmap)等。下面分别介绍这些图形的基础绘制方法。
单组箱式图(Single Box Plot)
箱式图是一种用于展示数据分布情况的图形,它可以显示数据的最大值、最小值、中位数、上四分位数(Q3)和下四分位数(Q1),以及可能存在的异常值。在MATLAB中,可以使用boxplot函数绘制箱式图。
示例代码:
matlab复制代码
% 生成一组随机数据 | |
data = randn(100, 1); | |
% 绘制箱式图 | |
boxplot(data); | |
% 添加标题和坐标轴标签 | |
title('Single Box Plot'); | |
xlabel('Data'); | |
ylabel('Value'); |
多组箱式图(Multiple Box Plots)
当需要比较多组数据的分布情况时,可以使用多组箱式图。在MATLAB中,可以通过向boxplot函数传入一个二维数组来实现。
示例代码:
matlab复制代码
% 生成多组随机数据 | |
data = [randn(50, 1); 2 + randn(50, 1); 3 + randn(50, 1)]; | |
% 绘制多组箱式图 | |
boxplot(data); | |
% 添加标题和坐标轴标签 | |
title('Multiple Box Plots'); | |
xlabel('Group'); | |
ylabel('Value'); |
普通热力图(Heatmap)
热力图是一种通过颜色的深浅来表示数据大小的图形,常用于展示二维数据矩阵。在MATLAB中,可以使用imagesc或pcolor函数结合colormap和colorbar来绘制热力图。
示例代码:
matlab复制代码
% 生成一个随机数据矩阵 | |
data = rand(10, 10); | |
% 绘制热力图 | |
imagesc(data); | |
% 添加色彩映射和色彩条 | |
colormap('jet'); % 选择色彩映射方案 | |
colorbar; % 显示色彩条 | |
% 添加标题和坐标轴标签 | |
title('Heatmap'); | |
xlabel('X Axis'); | |
ylabel('Y Axis'); |
除了上述基本绘图方法外,MATLAB还提供了丰富的选项和参数,可以用于自定义图形的外观、添加图例、调整坐标轴范围等。同时,MATLAB还支持与其他绘图工具(如Excel、Tableau等)的集成,方便数据分析和可视化。
当然,MATLAB支持绘制多种类型的图形,包括但不限于散点图、条形图、直方图、饼图、曲面图、极坐标图等。以下是一些其他图形的绘制示例代码:
散点图(Scatter Plot)
matlab复制代码
% 生成两组随机数据 | |
x = randn(100, 1); | |
y = randn(100, 1); | |
% 绘制散点图 | |
scatter(x, y); | |
% 添加标题和坐标轴标签 | |
title('Scatter Plot'); | |
xlabel('X Axis'); | |
ylabel('Y Axis'); |
条形图(Bar Plot)
matlab复制代码
% 生成一组数据 | |
data = [23, 45, 56, 78, 34]; | |
% 绘制条形图 | |
bar(data); | |
% 添加标题和坐标轴标签 | |
title('Bar Plot'); | |
xlabel('Category'); | |
ylabel('Value'); |
直方图(Histogram)
matlab复制代码
% 生成一组随机数据 | |
data = randn(1000, 1); | |
% 绘制直方图 | |
histogram(data); | |
% 添加标题和坐标轴标签 | |
title('Histogram'); | |
xlabel('Value'); | |
ylabel('Frequency'); |
饼图(Pie Chart)
matlab复制代码
% 生成一组数据,表示各部分的比例 | |
data = [23, 45, 32]; | |
% 绘制饼图 | |
pie(data); | |
% 添加标题和图例 | |
title('Pie Chart'); | |
legend({'Part 1', 'Part 2', 'Part 3'}); |
三维曲面图(3D Surface Plot)
matlab复制代码
% 生成一个网格的数据 | |
[X, Y] = meshgrid(-8 : 0.5 : 8); | |
R = sqrt(X.^2 + Y.^2) + eps; | |
Z = sin(R)./R; | |
% 绘制三维曲面图 | |
surf(X, Y, Z); | |
% 添加标题和坐标轴标签 | |
title('3D Surface Plot'); | |
xlabel('X Axis'); | |
ylabel('Y Axis'); | |
zlabel('Z Axis'); |
极坐标图(Polar Plot)
matlab复制代码
% 生成极坐标数据 | |
theta = 0 : 0.01 : 2*pi; | |
r = sin(theta); | |
% 绘制极坐标图 | |
polarplot(theta, r); | |
% 添加标题 | |
title('Polar Plot'); |
以上代码示例展示了如何在MATLAB中绘制不同类型的图形。每种图形都有其特定的应用场景,可以根据数据的特点和展示需求选择合适的图形类型。同时,MATLAB还提供了丰富的自定义选项,如调整颜色、添加图例、设置坐标轴范围等,以满足不同的可视化需求。