首页 理论教育 使用Matplotlib库进行绘图

使用Matplotlib库进行绘图

时间:2023-06-27 理论教育 版权反馈
【摘要】:表5-2“loc”参数取值说明matplotlib库中的图像组件示意如图5-22所示。图5-27matplotlib库中绘制柱形图的效果4)绘制直方图直方图和条形图有些类似,但是直方图显示的是数据在某个范围内的比例。图5-29matplotlib库中绘制饼图的效果

使用Matplotlib库进行绘图

1.matplotlib库

由名字可以看出,这个库的主要目的是能够在Python环境下提供MATLAB中类似的绘图体验。同其他第三方库一样,在使用前需要通过以下命令安装:

matplotlib库常用函数如表5-1所示。

表5-1 matplotlib库常用函数

在matplotlib库中,一幅图就是一个figure对象, “pyplot”是最为常用的绘图模块,其中包含了各种图形的绘制方法。在使用之前,需要导入该模块。matplotlib库的基础接口使用方法如下:

其中,“legend()”函数的一个重要参数“loc”用于指定图例的位置,“loc”的取值及其含义如表5-2所示。

表5-2  “loc”参数取值说明

matplotlib库中的图像组件示意如图5-22所示。

图5-22 matplotlib库中的图像组件示意

如果需要将坐标轴的刻度显示为个性化的内容,而不是数字的形式,则需要通过“xticks()”函数进行横坐标刻度的设置,“yticks()”函数进行纵坐标刻度的设置。它们有一个属性“rotation”,如果设置为“vertical”值,则表示刻度垂直显示。对x坐标轴的刻度进行重新设置,并让刻度标签垂直显示,代码如下:

执行结果如图5-23所示。

图5-23 修改坐标刻度的显示效果

在调用“scatter()”函数画图时,matplotlib库会获取当前的figure对象,如果为空,则将自动生成figure对象。如果需要另外生成一个绘图区域,即另一个figure对象,则需调用“figure()”函数。例如,“plt.figure(figsize=(10,10,dpi=80))”表示生成一个“(10×80)×(10×80)”像素大小的绘图区域,如果不使用参数,则表示创建默认大小的绘图区域。

若想实现在一幅图中包含多幅子图,则可以通过“subplot()”函数画子图,即将绘图区域分割成不同的子区域,分别画不同的内容。通常, “subplot()”函数使用3个数字参数,如“2,2,1”。其中,第一个数字表示子图划分的行数,第二个数字表示每行中的列数,第三个数字表示子图的序号。例如,画一个两行的子图,代码如下:

其中,“2,2,1”表示一共有两个子图,该行有两列,这是其中的第1个子图;同理,“2,2,2”表示第一行中的第2个子图。第2行中的一个子图占了“2,2,3”和“2,2,4”的位置,因此需要重新按照两行一列进行划分。按照这种划分方法,第1行应该是“2,1,1”,第2行的这一个子图应该用“2,1,2”来表示。

执行结果如图5-24所示。

图5-24 matplotlib库中子图的显示效果

2.使用matplotlib库绘制各种图形

通过“pyplot”模块可以在图形或者子图中绘制各种图形,常见的包括折线图、散点图、柱形图、直方图等。

1)绘制折线图

顾名思义,折线图使用线的形式展现数据之间的关系。此时需要用到“plot()”函数,在使用“plot()”函数绘制图时可以设置线的颜色、形状、宽度等属性。“plot()”函数常用参数如表5-3所示。

表5-3  “plot()”函数常用参数说明

续表

绘制折线图时,直线的颜色、形状、标记符三种设置可以放在一起使用。绘制三种不同形状的直线,每条直线中的数据使用不同的标记,具体代码如下:

执行结果如图5-25所示。

(www.xing528.com)

图5-25 matplotlib库中绘制直线的效果

2)绘制散点图

散点图通过点的形式展示数据分布,画散点图时使用函数“scatter()”,该函数需要以(x,y)形式表示数据,“scatter()”函数的相关参数如表5-4所示。

表5-4  “scatter()”常用参数说明

使用高斯分布生成500个数据点,计算数据点x与y之间的反正切值表示该数据点的颜色值,然后使用函数“scatter()”绘制散点图,代码如下:

执行结果如图5-26所示。

图5-26 matplotlib库中绘制散点图的效果

3)绘制柱形图

柱形图可以通过条形形状的高低或长短表示数据之间的相互关系,它的绘制函数是“bar()”。“bar()”函数常用参数如表5-5所示。

表5-5  “bar()”函数常用参数说明

水平柱形图可通过“barh()”函数实现,“barh()”函数与“bar()”函数的主要区别是:在“bar()”函数中,“width”这一参数代表的是柱形图形的宽度,而在“barh()”函数中,“width”这一参数代表的是柱形图形的长度。在绘制的柱形图中,若想显示每个柱形图形的数值大小,可以通过“text()”函数添加对应的文本。“barh()”函数常用参数如表5-6所示。

表5-6  “barh()”函数常用参数说明

分别绘制竖直和水平的柱形图,代码如下:

执行结果如图5-27所示。

图5-27 matplotlib库中绘制柱形图的效果

4)绘制直方图

直方图和条形图有些类似,但是直方图显示的是数据在某个范围内的比例。通过“hist()” 函数可以画直方图。参数“bins”是划分的不同的数值范围,参数“label”是不同数据集合的标签。随机生成0~50的整数,并且将这些数在不同范围内的生成频率显示出来,代码如下:

执行结果如图5-28所示。

图5-28 matplotlib库中绘制直方图的效果

5)绘制饼图

在matplotlib库中,使用函数“pie()”绘制饼图时需要输入一定比例的数据集合。函数“pie()”常用参数如表5-7所示。

表5-7  “pie()”函数常用参数说明

在如下所示的代码中使用“rcParams”设置字体属性,支持中文显示,否则中文字体将显示乱码。显示的数据保存在变量“scores”中,然后分别设置颜色、标签等属性。这里需要突出“差”的成绩,因此,在“explode”中对应的位置设置突出值的大小。调用“legend”函数显示图例,“axis('equal')”函数将饼图显示为正圆形,代码如下:

执行结果如图5-29所示。

图5-29 matplotlib库中绘制饼图的效果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈