一、基础绘图
Matlab的plot函数是最常用的绘制二维图形的函数之一,它可以用来绘制线性图、散点图、饼图、直方图等等。绘制基础图形非常简单,只需要提供要绘制的数据即可。
% 绘制折线图 x = 0:0.1:pi; y = sin(x); plot(x,y)
运行该代码,将会绘制出一条sin函数曲线。
除了基础绘图,我们还可以对绘制出来的图像进行格式化处理,比如修改线条颜色、添加图例、调整坐标轴范围等等。
% 修改线条颜色 x = 0:0.1:pi; y = sin(x); plot(x,y,'r') % 将折线颜色改为红色
运行该代码,将会绘制出一条红色的sin函数曲线。
% 添加图例 x = 0:0.1:pi; y1 = sin(x); y2 = cos(x); plot(x,y1,'r',x,y2,'g') legend('sin','cos') % 添加图例
运行该代码,将会绘制出一条红色的sin函数曲线和一条绿色的cos函数曲线,并在图像上添加上了“sin”和“cos”两个图例。
二、多子图绘制
某些情况下,我们需要在同一张图中绘制多幅子图或多个子图,这时候可以使用subplot函数将一个大图划分成多个小图进行绘制。
% 绘制多个子图 x = 0:0.1:pi; y1 = sin(x); y2 = cos(x); y3 = tan(x); subplot(2,2,1) % 第一个子图 plot(x,y1) subplot(2,2,2) % 第二个子图 plot(x,y2) subplot(2,2,[3 4]) % 第三个和第四个子图 plot(x,y3)
运行该代码,将会绘制出一张有三个子图的大图,第一个子图绘制sin函数曲线,第二个子图绘制cos函数曲线,第三个和第四个子图绘制tan函数曲线。
三、图像格式化
Matlab中还提供了丰富的图像格式化手段,使得图像更具可读性、美观性。下面是一些常见的图像格式化操作:
- 修改坐标轴范围:axis函数可以用来修改x轴和y轴的范围。
- 添加标题和标签:title、xlabel、ylabel函数可以分别添加图像的标题和坐标轴标签。
- 修改线条粗细:在plot函数中使用LineWidth参数可以修改线条的粗细。
% 图像格式化案例 x = 0:0.1:pi; y1 = sin(x); y2 = cos(x); plot(x,y1,'r',x,y2,'g','LineWidth',2) title('Sin and Cos Curve') % 添加标题 xlabel('X-axis') % 添加x轴标签 ylabel('Y-axis') % 添加y轴标签 axis([0 pi -1 1]) % 修改坐标轴范围
运行该代码,将会绘制出一条红色的sin函数曲线和一条绿色的cos函数曲线,带有标题、坐标轴标签,并且x轴的范围是0到π,y轴的范围是-1到1。
四、三维图像绘制
除了二维图像,Matlab还支持绘制三维图像,比如三维散点图、三维曲面等等。
% 绘制三维曲面 [x,y] = meshgrid(-2:0.2:2); z = x.*exp(-x.^2-y.^2); surf(x,y,z)
运行该代码,将会绘制出一个三维曲面。
绘制三维图像需要使用到Matlab中的一些专业函数,比如surfl、meshgrid等等。通过这些函数的组合使用,可以绘制出各种各样的三维图像。
五、数据可视化案例
通过Matlab绘制的图像,可以帮助我们更好地理解数据本身所包含的信息和规律。下面是两个数据可视化案例。
案例1:人口增长数据
我们使用Matlab绘制人口增长数据的折线图,以便更好地了解人口增长的趋势和规律。
% 人口增长数据可视化 data = load('population.txt'); year = data(:,1); pop = data(:,2); plot(year,pop) xlabel('Year') ylabel('Population (in millions)') title('World Population Growth')
运行该代码,将会绘制出一条人口增长折线图,横轴表示年份,纵轴表示人口数。
案例2:电影票房数据
我们使用Matlab绘制电影票房数据的直方图,以便更好地了解电影票房的分布规律。
% 电影票房数据可视化 data = [27.5 30.0 26.5 22.0 29.5 24.0 25.5 25.0 24.0 25.5 27.0 26.5 27.5 26.5 28.0 29.0 27.5 29.5 27.0 26.5 28.5 25.5 29.0 28.0 30.0 26.5 29.0 29.5 25.5 28.0 26.0 27.5 25.0 25.5 26.5 28.0 23.5 25.5 25.0 24.0 26.5 24.5 25.0 25.5 27.5 22.5 26.0 23.5 26.5 29.0]; histogram(data,10) xlabel('Box Office (in millions)') ylabel('Frequency') title('Box Office Distribution')
运行该代码,将会绘制出电影票房数据的直方图,横轴表示票房数,纵轴表示票房数出现的频率。