第5章 数据可视化——5.2 二维图形绘制(4)

简介: 第5章 数据可视化——5.2 二维图形绘制(4)

5.2  二维图形绘制(4)


5.2.12  特殊坐标轴绘图


前几节介绍了基本的二维绘图函数的使用,但其中无论是直角坐标系还是极坐标系,用到的坐标轴的刻度均是线性刻度。但是在很多实际情况中,数据都出现指数型的变化规律,这时如果再用线性刻度来描述曲线,则处于低次幂的部分数据无法清晰地表现出来。当然,利用5.2.9节中提到的双坐标轴绘图,对指数数据进行局部放大,则可以解决这个问题。但是在MATLAB中,还有更加简便的方式。本节介绍3个函数来解决对数数据的问题,分别是semilogx函数、semilogy函数和loglog函数。


1semilogx函数


semilogx函数的调用格式与plot函数基本相同,此处不再赘述每一个句法的功能。

● semilogx(Y)

● semilogx(X1,Y1,X2,Y2,…)

● semilogx(X1,Y1,LineSpec1,X2,Y2,LineSpec2,…)

● semilogx(…,'PropertyName ',PropertyValue,…)

在利用semilogx函数绘制图形时,x轴采用对数坐标。若没有指定使用的颜色,当所画线条较多时,semilogx函数将自动使用由当前的ColorOrderLineStyleOrder属性所指定的颜色顺序和线型顺序来绘制线条。


5-20semilogx函数与plot函数对比示例。

创建M文件并命名为logx.m(同时存为ex5_20.m),利用M文件编辑器在M文件中输入:

clear all
x = 10 .^ (0.1 : 0.1 : 4);
y = 1 ./ (x + 1000);
figure
subplot(1,2,1);
semilogx(x, y, '+', 'MarkerSize', 5, 'LineWidth', 2);
title('y=(x+1000)^{-1}')
subplot(1,2,2);
plot(x, y, '+', 'MarkerSize', 5, 'LineWidth', 2);
title('y=(x+1000)^{-1}')

运行M文件,结果如图5-22所示。

16f96ea050a91ca9fe406df6799172d7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5-22  logx.m运行结果


2semilogy函数


semilogy函数的调用格式与semilogx函数相同,在绘制图形时,y轴采用对数坐标。若没有指定使用的颜色,当所画线条较多时,semilogy函数将自动使用由当前的ColorOrderLineStyleOrder属性所指定的颜色顺序和线型顺序来绘制线条。


3loglog函数


loglog函数的调用格式与semilogx函数相同,在绘制图形时,x轴与y轴均采用对数坐标。


5-21loglog函数与plot函数对比示例。

创建M文件并命名为logxlogy.m(同时存为ex5_21.m),利用M文件编辑器在M文件中输入:

clear all
a = 0.1 : 0.1 : 5;
x = log10(a);
y = 10 .^ a;
figure
subplot(1,2,1);
loglog(x, y, '+', 'MarkerSize', 5, 'LineWidth', 2);
title('lgy = 10^x')
subplot(1,2,2);
plot(x, y, '+', 'MarkerSize', 5, 'LineWidth', 2);
title('lgy = 10^x')

运行M文件,结果如图5-23所示。

1b0c3c1fee70f60d3d84a18a87df9ee9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5-23  logxlogy.m运行结果


5.2.13  二维特殊图形函数


MATLAB中,除了可以通过plot函数等绘制图形,还可以通过一些函数绘制柱状图、饼状图等特殊图形。常见的二维特殊图形函数如表5-14所示。

5-14  二维特殊图形函数

函数名

说明

area

填充绘图

bar

条形图

barh

水平条形图

comet

彗星图

errorbar

误差带图

ezplot

简单绘制函数图

ezpolar

简单绘制极坐标图

feather

矢量图

fill

多边形填充

gplot

拓扑图

compass

feather功能类似的矢量图

fplot

函数绘制

hist

条形直方图

pareto

Pareto

pie

饼图

plotmatrix

分散矩阵绘制

ribbon

三维图的二维条状显示

scatter

散点图

stem

离散序列火柴杆状图

stairs

阶梯图

rose

极坐标系下的柱状图

quiver

向量场


5-14中的函数均有不同的调用方法,下面通过示例向读者介绍其中几个常用的函数,其他函数的使用方法可以查阅MATLAB的在线帮助。


1bar函数

bar函数用于绘制二维垂直条形图,用垂直条形显示向量或矩阵中的值。其调用格式如下。

● bar(y):为每一个y中的元素画一个条状。

● bar(x,y):在指定的横坐标x上画出y,其中x为严格单增的向量。若y为矩阵,则bar把矩阵分解成几个行向量,在指定的横坐标处分别画出。

● bar(...,'bar_color ')“bar_color”定义条的颜色。

● bar(axes_handle,...):将图形绘制到坐标轴句柄axes_handle中,而不是当前坐标轴句柄中。


5-22:创建二维垂直条形图示例。

创建M文件并命名为verticalbar.m(同时存为ex5_22.m),利用M文件编辑器在M文件中输入:

clear all
y = [75.995 91.972 105.711 123.203 131.669 ...
    150.697 179.323 203.212 223.505 249.633 281.422];
figure;
bar(y);

运行M文件,结果如图5-24所示。

a797e0bb2b212470193c03dcb559a0b2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5-24  verticalbar.m运行结果


5-23:二维直方图有两种类型:垂直直方图和水平直方图。而每种类型又有两种表现模式:累计式和分组式。本例选择其中两种加以表现。

创建M文件并命名为ex5_23.m,利用M文件编辑器在M文件中输入:

clear all
x = -2 : 2;
Y = [6 8 7 4 5;4 8 1 12 0;4 6 21 1 3];
subplot(1,2,1),bar(x', Y', 'stacked')
xlabel('x'), ylabel('\Sigma y'), colormap(cool)
legend('因素1', '因素2', '因素3')
subplot(1,2,2),barh(x', Y', 'grouped')
xlabel('y'), ylabel('x')

运行M文件,结果如图5-25所示。

8c65db9dead89e720ed2b6a5bf3680bb_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5-25  垂直直方图和水平直方图运行结果


2pie函数


pie函数用于绘制饼图,其调用格式如下。

● pie(x):绘制参数x的饼图。

● pie(x,explode)explode是与x同维的矩阵,若其中有非零元素,则x矩阵中相应位置的元素在饼图中对应的扇形将向外移出一些,加以突出。

● pie(...,labels)labels用于定义相应块的标签。

● pie(axes_handle,...):将图形绘制到坐标轴句柄axes_handle中,而不是当前坐标轴句柄中。

● h=pie(...):返回绘制的饼图相关的句柄。


5-24:创建二维饼图和三维饼图示例。

创建M文件并命名为ex5_24.m,利用M文件编辑器在M文件中输入:

clear all
x = [1 5 0.5 3.5 2];
explode = [0 1 0 1 0];
subplot(1,2,1)
pie(x, explode)
colormap jet
title('二维饼图')
subplot(1,2,2)
pie3(x, explode)
colormap hsv
title('三维饼图')

运行M文件,结果如图5-26所示。

f23bfcca642f206972dc2a824bd98db8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5-26  二维饼图和三维饼图程序运行结果


3hist函数

hist函数用于绘制条形直方图,可以显示出数据的分布情况。所有向量y中的元素或者矩阵Y的列向量中的元素是根据它们的数值范围来分组的,每一组作为一个条形进行显示。条形直方图中的x轴反映了数据y中元素数值的范围,直方图的y轴显示出参量y中的元素落入该组的数目。其调用格式如下。

● n=hist(y):把向量y中的元素放入等距的10个条形中,且返回每一个条形中的元素个数。若y为矩阵,则该命令按列对y进行处理。

● n=hist(y,x):参量x为向量,把y中元素放到mm=length(x))个由x中元素指定的位置为中心的条形中。

● n=hist(y,nbins):参量nbins为标量,用于指定条形的数目。

● [n,xout]=hist(...):返回向量n与包含频率计数与条形的位置向量xout,用户可以用命令bar(xout,n)画出条形直方图。

● hist(...):生成直方图,但不产生输出。

● hist(axes_handle,...):将图形绘制到坐标轴句柄axes_handle中,而不是当前坐标轴句柄中。


5-25:绘制直方图示例。

创建M文件并命名为ex5_25.m,利用M文件编辑器在M文件中输入:

clear all
x = -4 : 0.1 : 4;
y = randn(5000, 1);
hist(y, x)
title('直方图')

运行M文件,结果如图5-27所示。

13b0277ab0c417bb17629f33335ad60a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5-27  直方图程序运行结果


4scatter函数


scatter函数用于绘制散点图,其调用格式如下。

● scatter(x,y):以xy的值为横、纵坐标,绘制散点图。


5-26:绘制散点图示例。

创建M文件并命名为ex5_26.m,利用M文件编辑器在M文件中输入:

clear all;
figure;
x = [1 5 6 7 9 5 1 3 12 20];
y = [20 15 6 3 1 5 3 0 1 5];
subplot(1,2,1);
scatter(x, y);
subplot(1,2,2);
scatter(x, y, 'r', 'fill');

运行M文件,结果如图5-28所示。

283cd4bd59f3261abf7a20da638e5cc9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5-28  散点图程序运行结果


相关文章
|
自然语言处理 数据可视化 算法
第5章 数据可视化——5.4 四维图形可视化
第5章 数据可视化——5.4 四维图形可视化
|
2月前
|
数据可视化 Python
可视化 图形 matplotlib
可视化 图形 matplotlib
|
5月前
|
数据可视化 Python
利用Matplotlib绘制数据可视化图表
**摘要:** 本文介绍了Python的绘图库Matplotlib在数据分析和科学计算中的重要性。Matplotlib是一个开源库,提供类似MATLAB的接口,支持静态、动态和交互式图表的绘制,并能保存为多种格式。文章详细讲解了Matplotlib的基本用法,包括安装库、导入模块和绘制简单折线图的步骤。还展示了如何绘制柱状图并添加数据标签。通过这些例子,读者可以了解如何利用Matplotlib进行数据可视化,并对其进行自定义以满足特定需求。
54 4
|
数据可视化 C#
第5章 数据可视化——5.2 二维图形绘制(2)
第5章 数据可视化——5.2 二维图形绘制(2)
|
数据可视化 关系型数据库
第5章 数据可视化——5.2 二维图形绘制(1)
第5章 数据可视化——5.2 二维图形绘制(1)
|
自然语言处理 数据可视化 算法
第5章 数据可视化——5.2 二维图形绘制(3)
第5章 数据可视化——5.2 二维图形绘制(3)
|
数据可视化
第5章 数据可视化——5.3 三维图形绘制
第5章 数据可视化——5.3 三维图形绘制
|
数据可视化
第5章 数据可视化——5.1 图形绘制
第5章 数据可视化——5.1 图形绘制
|
数据可视化 数据挖掘 物联网
二维数据可视化|学习笔记
快速学习二维数据可视化
257 0
二维数据可视化|学习笔记
|
SQL 数据可视化 算法
数据可视化—绘制简单的折线图
在使用matplotlib绘制简单的折线图之前首先需要安装matplotlib,直接在pycharm终端pip install matplotlib即可
258 0
数据可视化—绘制简单的折线图