快捷搜索: 王者荣耀 脱发

MATLAB绘制平面填充图入门详解

一、引言

在画图的时候,为了让图形更加清晰突出,往往需要对某一条或几条曲线围成的区域进行填冲颜色,以得到填充图。对于平面图形的填充,可以matlab的命令fill和area等实现。

二、fill命令的简单用法

基于语法: 1)fill(x, y, ‘color’) 功能:以x为横坐标,y为纵坐标,绘制同色填充的区域图。 (1)如果(x,y)组成的图形式闭曲线,则用颜色color填充该闭区域; (2)如果(x,y)组成的图形是曲线段,则填充以曲线段为上曲边,该曲线段的两个端点连城的直线为另外一条边,生成封闭区域,再用颜色color填充该区域; (3)color可以是单一颜色,如r、g、b等,也可以是颜色矩阵,此时必须与x和y同维数。 2) fill(x1, y1, ‘color1’, x2, y2, ‘color2’, … ) 功能:绘制多个填充区域图,其中以x1为横坐标,y1为纵坐标,围成一个闭区域(非封闭则自动补充曲线端点的连线,以构成闭区域),以x2为横坐标,y2为纵坐标,围成另一个闭区域,并分别用相应的颜色填充。

例1:绘制对称区间上正态分布概率密度曲线填充图 参考代码如下:

clear all
clc
%绘制正态概率密度函数对应的填充图
x1 = [ -8 : 0.2 : 8 ];
y1 = 2 * exp( -( x1 ).^2 / 2 );
fill( x1, y1, b )
hold on
%绘制非对称区间上正态概率密度函数对应的填充图
x2 = [ 1: 0.1 : 10 ];
y2 = -2 * exp( -( x2 - 2  ).^2 / 2 );
fill( x2, y2, r )
title(  fill demo  )

运行结果: 上面的图形也可以使用如下代码实现,也就是使用在fill中同时绘制两个图形。代码如下:

clear all
clc
x1 = [ -8 : 0.2 : 8 ];
y1 = 2 * exp( -( x1 ).^2 / 2 );
x2 = [ 1: 0.1 : 10 ];
y2 = -2 * exp( -( x2 - 2  ).^2 / 2 );
fill( x1, y1, b, x2, y2, r )
title(  fill demo  )

例2: 使用颜色矩阵绘制填充图。 参考代码如下:

x3 = [ 1 : 0.5 : 5 ];
y3 = x3.^2;
c = [ randn(length(x3), 1) ];%颜色矩阵,可以根据自己的需要指定
fill( x3, y3, c )
hold on
y4 = -x3.^2;
fill( x3, y4, c )%此处的c是青色
title( color matris fill demo )

运行结果:

三、area命令的简单用法

基本语法 1)area(x, y, ‘name1’, value1, ‘name2’, value2, …) 功能:绘制曲线段(x,y)与x轴围成封闭图形的同色填充的区域图。 name的常用值如下: FaceColor:填充的颜色,其值必须是rgb格式的颜色数组 EdgeColor:边缘线的颜色,其值必须是rgb格式的颜色数组 FaceAlpha:透明度,其值是0~1之间的实数 LineStyle:线元属性,即用什么样图元绘图,例如‘-’表示直线,‘:’表示虚线 2)area(X) 功能:X为矩阵,以 列 为单位绘制曲线,并用同色填充 例3:绘制曲线y=x^2在[-1,1]区间上的一段与x轴围成封闭图形的填充图。 参考代码:

clear all
clc
x = [ -1 : 0.01 : 1 ];
y = x.^2 ;
area( x, 2*y, FaceColor, [ 1, 0, 0 ] )
axis( [ -2, 2, 0, 2 ] )

运行结果: 例4:绘制正态概率密度函数曲线的填充图 参考代码如下:

clear all
clc
x = [ -8 : 0.2 : 8 ];
y1 = 0.6 * exp( -(x+3).^2 / 2 );
area( x, y1, FaceColor, [ 0, 1, 1 ], FaceAlpha, 0.5 );   hold on
y2 = 0.5 * exp( -x.^2 / 2 );
area( x, y2, FaceColor, [ 1, 0, 1 ], LineStyle, :, FaceAlpha, 0.5 );
y3 = 0.4 * exp( -(x-2).^2 / 2 );
area( x, y3, FaceColor, [ 1, 1, 0 ], LineStyle, -., FaceAlpha, 0.6 );
%也可以使用函数normpdf获取指定均值和方差的正态分布概率密度曲线上的纵坐标
y4 = 0.2 * normpdf( x/5, 0, 1 );
area( x, y4, FaceColor, [ 0.5, 0.8, 0.2 ], FaceAlpha, 0.6, EdgeColor, [ 1, 0, 0 ] );

运行结果: 例5:绘制5阶魔方矩阵的填充图 参考代码如下:

clear all
clc
x = magic(5)
area( x )

运行结果:

经验分享 程序员 微信小程序 职场和发展