5.2 二维图形绘制(2)
5.2.3 文字说明
通常,曲线所表示的函数或数据的规律都需要进行一些文字说明或标注。图形窗口中的文本操作指令如下。
● title('text'):在图形窗口顶端的中间位置输出字符串“text”作为标题。
● xlabel('text'):在x轴下的中间位置输出字符串“text”作为标注。
● ylabel('text'):在y轴边上的中间位置输出字符串“text”作为标注。
● zlabel('text'):在z轴边上的中间位置输出字符串“text”作为标注。
● text(x,y,'text'):在图形窗口的(x,y)处写字符串“text”。坐标x和y按照与所绘制图形相同的刻度给出。对于向量x和y,字符串“text”写在(xi,yi)的位置上。如果“text”是一个字符串向量,即一个字符矩阵,且与x、y有相同的行数,则第i行的字符串将写在图形窗口的(xi ,yi)位置上。
● text(x,y,'text','sc'):在图形窗口的(x,y)处输出字符“text”,给定左下角的坐标为(0.0,0.0),右上角的坐标则为(1.0,1.0)。gtext('text')通过使用鼠标或方向键,移动图形窗口中的十字光标,让用户将字符串text放置在图形窗口中。当十字光标走到所期望的位置时,用户按下任意键或单击任意按钮,字符串将会写入窗口中。
● legend(str1,str2,...,pos):在当前图形上输出图例,并用说明性字符串str1、str2等做标注。其中,参数pos的可选项目如表5-1所示。
表5-1 曲线线型
线型代号 |
表示线型 |
-1 |
将图例框放在坐标轴外的右侧 |
0 |
将图例框放在图窗内与曲线交叠最小的位置 |
1 |
将图例框放在图窗内右上角 |
2 |
将图例框放在图窗内左上角 |
3 |
将图例框放在图窗内左下角 |
4 |
将图例框放在图窗内右下角 |
● legend(str1,str2,...,'Location','pos'):在当前图形上输出图例,并用说明性字符串str1、str2等做标注。其中,参数pos的可选项目如表5-2所示。
表5-2 图形标记
● legendoff:从当前图形中清除图例。
例5-12:图窗内文字说明示例。
创建M文件并命名为radioaxis.m(同时存为ex5_12.m),利用M文件编辑器在M文件中输入:
x = 0 : 0.01 * pi : pi * 0.5; y = cos(x) + sqrt(-1) * sin(x); plot(y * 2, 'r', 'LineWidth', 5);hold on; x = pi * 0.5 : 0.01 * pi : pi; y = cos(x) + sqrt(-1) * sin(x); plot(y * 2, 'y', 'LineWidth', 5);hold on; x = -pi : 0.01 * pi : -pi * 0.5; y = cos(x) + sqrt(-1) * sin(x); plot(y * 2, 'b', 'LineWidth', 5);hold on; x = -pi * 0.5 : 0.01 * pi : 0; y = cos(x) + sqrt(-1) * sin(x); plot(y * 2, 'g', 'LineWidth', 5);hold on; title('极坐标系'); text([1.5 -3 1.5 -3], [2 2 -2 -2], {'第一象限', '第二象限', '第三象限', '第四象限'}) legend({'[0 0.5\pi]','[0.5\pi \pi]','[\pi 1.5\pi]','[1.5\pi 2\pi]'}) xlim([-5 5]);ylim([-5 5]); plot([-4 4], [0 0], 'k', 'LineWidth', 3);hold on; plot([0 0], [-4 4], 'k', 'LineWidth', 3);hold on; axis off
运行M文件,结果如图5-14所示。
图5-14 radioaxis.m运行结果
MATLAB中的字符串可以对输出的文字风格进行预先设置,可以预先规定的有字体、风格及大小。另外,可以进行上、下标的表示,还可以输出数学公式中经常用到的希腊字符和其他特殊字符。这些指令及特殊符号的输出方法如表5-3~表5-6所示。
表5-3 字体式样设置规则
表5-4 上、下标的控制指令
表5-5 希腊字符的输出方法
表5-6 其他特殊符号的输出方法
5.2.4 线型、标记和颜色
当同一个图形中同时画了多条曲线时,需要使用不同的线型、标记和颜色来区分不同的曲线。
1.线型
MATLAB平台上共有5种不同线型,如表5-7所示。
表5-7 曲线线型
线型代号 |
表示线型 |
- |
实线 |
-- |
虚线 |
-. |
点画线 |
: |
点线 |
none |
无线 |
2.标记
MATLAB平台上共有14种不同的标记方式,如表5-8所示。
表5-8 图形标记
标记代号 |
表示标记 |
+ |
加号 |
o |
小圆圈 |
* |
幸好 |
. |
实点 |
x |
交叉号 |
d |
菱形 |
^ |
向上三角形 |
> |
向右三角形 |
< |
向左三角形 |
s |
正方形 |
h |
正六角星 |
p |
正五角星 |
v |
向下三角形 |
3.颜色
MATLAB平台上有代号的颜色共有8种,如表5-9所示。
表5-9 曲线或标记颜色
颜色代号 |
表示颜色 |
RGB值 |
k(black) |
黑色 |
000 |
b(blue) |
蓝色 |
001 |
g(green) |
绿色 |
010 |
r(red) |
红色 |
100 |
c(cyan) |
青色 |
011 |
m(magenta) |
品红色 |
101 |
y(yellow) |
黄色 |
110 |
w(white) |
白色 |
111 |
例5-13:线型、标识与颜色示例。
创建M文件并命名为multicurve.m(同时存为ex5_13.m),利用M文件编辑器在M文件中输入:
clear all figure x = 0 : 0.01 * pi : pi * 8; plot(x, sin(x), 'r:', 'LineWidth', 3);hold on; plot(x, 2 * sin(x / 2), 'y', 'LineWidth', 3);hold on; plot(x, 4 * sin(x / 4), 'b--', 'LineWidth', 3);hold on; x = 0 : pi : pi * 8; plot(x, sin(x), 'g^', 'MarkerSize', 10, 'LineWidth', 3);hold on; plot(x, 2 * sin(x / 2), 'co', 'MarkerSize', 10, 'LineWidth', 3);hold on; plot(x, 4 * sin(x / 4), 'ms', 'MarkerSize', 10, 'LineWidth', 3);hold on; xlim([0 pi * 8])
运行M文件,结果如图5-15所示。
图5-15 multicurve.m运行结果
在MATLAB平台上还有一种叫作颜色映像的数据结构来代表颜色值。颜色映像定义为一个有3列和若干行的矩阵。利用0~1之间的数值,矩阵的每一行都代表了一种色彩。任一行的数字都指定了一个RGB值,即红、绿、蓝3种颜色的强度,形成一种特定的颜色。一些有代表性的RGB值如表5-10所示。
表5-10 一些有代表性的RGB值
Red(红) |
Green(绿) |
Blue(蓝) |
颜色 |
0 |
0 |
0 |
黑 |
1 |
1 |
1 |
白 |
1 |
0 |
0 |
红 |
0 |
1 |
0 |
绿 |
0 |
0 |
1 |
蓝 |
1 |
1 |
0 |
黄 |
1 |
0 |
1 |
洋红 |
0 |
1 |
1 |
青蓝 |
2/3 |
0 |
1 |
天蓝 |
1 |
1/2 |
0 |
橘黄 |
1/2 |
0 |
0 |
深红 |
1/2 |
1/2 |
1/2 |
灰色 |
有10个MATLAB函数产生预定的颜色映像,如表5-11所示。
表5-11 颜色映像函数集
函数名称 |
函数说明 |
Hsv |
色彩饱和值(以红色开始和结束) |
Hot |
从黑到红到黄到白 |
Cool |
青蓝和洋红的色度 |
Pink |
粉红的彩色度 |
Gray |
线性灰度 |
Bone |
带一点蓝色的灰度 |
Jet |
hsv的一种变形(以蓝色开始和结束) |
copper |
线性铜色度 |
Prim |
三棱镜。交替为红色、橘黄色、黄色、绿色和天蓝色 |
Flag |
交替为红色、白色、蓝色和黑色 |
在默认情况下,上面所列的各个颜色映像产生一个64×3的矩阵,指定了64种颜色RGB的描述。这些函数都接收一个参量来指定所产生矩阵的行数。比如hot(m)产生一个m×3的矩阵,它包含的RGB颜色值的范围从黑经过红、橘红、黄……一直到白。
大多数计算机在一个8位的硬件查色表中一次可以显示256种颜色,当然有些计算机的显卡可以同时显示更多的颜色。这就意味着在不同的图中,一般一次可以用3个或4个64×3的颜色映像。如果使用了更多的颜色映像输入项,则计算机必须经常在它的硬件查色表中调出输入项。例如,在画MATLAB图形时背景图案发生了变化,就是发生了这种情况。所以,除非计算机有一次显示更多种颜色的显卡,否则最好任何一次所用的颜色映像输入项数都小于256。
5.2.5 坐标轴设置
图形坐标轴的取值范围及其刻度对图形的显示效果有着很明显的影响。在默认情况下,MATLAB通过便捷智能的函数和内部自适应设置来显示图形。
有时候,默认设置生成的图形往往达不到用户所要求的效果,或者用户只对图形中的某一部分感兴趣,这时就需要通过坐标轴控制函数,有针对性地调整和设置坐标轴的某些参数。
MATLAB提供的坐标轴控制函数如表5-12所示。
表5-12 MATLAB中的坐标轴控制函数
例5-14:坐标轴设置示例。
创建M文件并命名为figureaxis.m(同时存为ex5_14.m),利用M文件编辑器在M文件中输入:
clear all X = (0 : 1800) * pi / 180;Y = cos(X / 2); figure(1) subplot(1,3,1);plot(X, Y, 'LineWidth', 2);xlim([0 30]);grid on; subplot(1,3,2);plot(X, Y, 'LineWidth', 2);xlim([0 30]);grid on;grid; subplot(1,3,3);plot(X, Y, 'LineWidth', 2);xlim([0 30]);grid;grid off;
运行M文件,结果如图5-16所示。
图5-16 figureaxis.m运行结果