python数据分析及可视化(十一)Matplotlib布局配置(雷达图、Figure容器、子图对象、Axis容器、多图布局、3D绘制)

雷达图

雷达图(Radar Chart)又被叫做蜘蛛网图,适用于显示三个或更多的维度的变量的强弱情况。比如某个企业在哪些业务方面的投入等,都可以用雷达图方便的表示。
在matplotlib.pyplot中,可以通过plt.polar来绘制雷达图,这个方法的参数跟plt.plot非常的类似,只不过是x轴的坐标点应该为弧度(2*PI=360°)。
注意:
● 因为polar并不会完成线条的闭合绘制,所以我们在绘制的时候需要在theta中和values中在最后多重复添加第0个位置的值,然后在绘制的时候就可以和第1个点进行闭合了,保证起点和终点是同一个位置。
● polar只是绘制线条,所以如果想要把里面进行颜色填充,那么需要调用fill函数来实现。
● polar默认的圆圈的坐标是角度,如果我们想要改成文字显示,那么可以通过xticks来设置。
在这里插入图片描述

Figure容器

绘图的时候要先有画板,再有画纸,才能把x和y轴的数据写入进行绘制图形。画板确定后,画纸可以铺满画板,也可以只占画纸的一部分。
在这里插入图片描述

子图对象

Axes介绍

Axes容器是用来创建具体的图形的。比如画曲线,柱状图,都是画在上面。所以之前我们学的使用plt.xx绘制各种图形(比如条形图,直方图,散点图等)都是对Axes的封装。
在一张画布上绘制两个图表,如左边绘制山水画,右边绘制油画。通过add_subplot向画布中添加对象,221指的是2行2列中的第1个图形,就好比把画布分为2行2列的4个区域,在第1个区域增加画纸。
在这里插入图片描述
add_axes向画布中添加对象,0,0表示添加对象的位置点为原点,1,1指的是图形为原图比例长度大小,好比多张纸大小不一样的纸叠加到一起,如果圆点坐标一致,大小一致的话图表会进行重叠。
在这里插入图片描述

在这里插入图片描述
可以通过set_xlim/set_ylim来设置x轴和y轴的最大值和最小值。
在这里插入图片描述
降水量和气温共用的图表中可以看到,如柱子代表降水量,折现表示温度变化,x轴代表的是月份,可以克隆x轴对象,在一个图表中绘制两个子图,y轴的刻度范围不一致,
在这里插入图片描述

绘制双y轴

在这里插入图片描述
在这里插入图片描述

添加

画板容器相应的方法,创建多图的子图布局的时候,在一个画板中添加子图对象的时候,建议两种方法不混用,传入参数不一样,标准不一样,得到的图表也不一样。
在这里插入图片描述

操作和删除

判断操作的哪个子图,可以进行操作和删除。
在这里插入图片描述

获取

如果有很多子图,标题、刻度、网格布局等一致的内容,都可以进行循环遍历获取获取每一个子对象,进行批量操作。
在这里插入图片描述

Axis 容器

坐标轴容器,Axis代表的是x轴或者y轴的对象。包含Tick(刻度)对象,TickLabel刻度文本对象,以及AxisLabel坐标轴文本对象。axis对象有一些方法可以操作刻度和文本等。

标签位置设置

rotation设置标签旋转的角度,默认是90度
在这里插入图片描述

刻度格式设置

在这里插入图片描述
在这里插入图片描述

多图布局

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3D立体图形

在pycham中,默认使用自带的工具显示图表,是个二维静态的图表,能显示数据,无法看到3D的效果,可以在Setting -->Tools—>Python Scientific,去掉 Show plots in tool window 前面的勾,再运行代码打开的3D图形可以移动和旋转。
在这里插入图片描述
在这里插入图片描述

练习1

为了对某一产品进行合理定价,我们对此类商品进行了试销实验,价格与需求量数据如下。利用图表分析规律。

价格	60	80	40	30	70	90	95
需求量	100	50	120	135	65	45	40

price = [60,80,40,30,70,90,95]
sales = [100,50,120,135,65,45,40]

此题是关于定价与销量的关系,可以把价格定为x轴,需求量定为y轴,分析二者之间的规律,一般要绘制散点图,看一下y随着x的变化的产生的趋势。
在这里插入图片描述

练习2

电影数据如下:

movies_name = ["变身特工","美丽人生","鲨海逃生","熊出没·狂野大陆"] 
day_12 = [2358,399,2358,362] 
day_13 = [12357,156,2045,168] 
day_14 = [15746,312,4497,319]

需求:直观体现出不同电影近三天的票房的对比情况;绘制图形如下
在这里插入图片描述
此题中有标签,包含电影名称和每个电影名称的索引,3天的电影票房数据。设置图表大小的比例,设置柱子的宽度,从3天的数据中遍历出每一部电影票房,每部电影的数据按照柱子的宽度依次排列,这时基本的图表已经实现,下面要做的就是加上数字标签,可以用annotate(),也可以用text(),指定坐标,把字符串放在坐标位置,可以定义添加数字的函数,每个电影去引用函数就可以了
把图例、网格线、标签、网格背景的设置都放在最后,便于排查问题。
在这里插入图片描述
在这里插入图片描述

练习3

绘制班级的身高分布图形
height = [160,163,175,180,176,177,168,189,188,177,174,170,173,181]

关于分布的图形有:散点图可以看到数据的分布和分散情况;直方图可以看到x轴连续的区间范围内,哪个区间的数值最多;箱线图主要是看一组或多组数据的分散程度,是靠近上边缘还是下边缘,可以帮助看到数据的异常值和离群点,都能直观的看到数据的分布。
在这里插入图片描述
在这里插入图片描述

练习4

实现以下子图布局:
在这里插入图片描述
创建画布在上面布局2*2,四个图形区域,对每个区域的图形进行分布绘制。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hwwaizs/article/details/127551962