Matplotlib
介绍
Matplotlib是一个Python的基础绘图库,它可与 NumPy 一起使用,代替Matlab使用。
将数据进行可视化,使数据更直观
使数据更加更具有说服力
安装命令
- pip install matplotlib
- 官网:https://matplotlib.org/users/installing.html
图片与子图
- plt.figure()生成新图片
- 在IPython中,执行该代码一个空白的绘图窗口就会出现,但在Jupyter中则没有任何显示
1 | from matplotlib import pyplot as plt |
除此之外,Matplotlib包含一个便捷方法plt.subplots创建一个新的图片,然后返回包含了已生成子图对象的Numpy数组。
plt.subplots(nrows, ncols, sharex, sharey)
- nrows子图的行数
- ncols子图的列数
- sharex 所有子图使用相同的x轴刻度
- sharey 所有子图使用相同的y轴刻度
那么实际上,当我们不需要使用子图时,可以通过plt对象直接绘制图形。
配置
方法 | 描述 |
---|---|
plt.figure(figsize=None,dpi=None) | 生成新的图片,figsize:图片大小,dpi:透明度 |
plt.savefig(fname) | 保存图片 |
plt.xticks(ticks=None) | 设置x轴刻度的值 |
plt.yticks(ticks=None) | 设置y轴刻度的值 |
plt.xlabel(xlabel) | 设置x轴标签 |
plt.ylabel(ylabel) | 设置y轴标签 |
plt.title() | 设置图标题 |
plt.grid() | 根据x轴和y轴的数值展示轴网格 |
索引-折线图
- plt.plot(x,y)创建折线图 marker可以更改点的类型
1 | from matplotlib import pyplot as plt |
- 显示刻度 plt.xticks(x,xb) 显示x刻度 并用xb标签替换
- plt.figure(figsize=(12,8)) 更改图片大小
- plt.savefig(mat.jpg) 保存图片
1 | from matplotlib import pyplot as plt |
1 | from matplotlib import pyplot as plt |
- 中文显示
1 | #全局设置 只能支持ttf字体 |
1 | #通过rcParams配置参数 |
1 | #局部设置字体 |
- 文本坐标注释
1 | from matplotlib import pyplot as plt |
散点图
- plt.scatter(x,y)
- 可以查看查看规律
1 | import matplotlib.pyplot as plt |
条形图
- plt.bar(x,y)
1 | """ |
- 分组条形图:水果 Q1销售额 Q2销售额 苹果 1000 1200 梨 800 700 车厘子 3000 2800
1 | from matplotlib.font_manager import FontProperties |
- 堆叠条形图 使用bottom进行堆叠
1 | from matplotlib.font_manager import FontProperties |
- 水平条形图 plt.barh
- y 为原本的x width 是数值大小 height是宽
1 | from matplotlib import pyplot as plt |
直方图
plt.hist(x,bins) x 数据 bins 组数 直方图的组数 长条形的数目
频数直方图
1 | from matplotlib import pyplot as plt |
- 频率直方图
1 | from matplotlib import pyplot as plt |
扇形图
plt.pie(比例,标签,标签原理中心程度)
扇形图通过**pie()**函数绘制
plt.pie(**x,** explode=None, labels=None)
- x 扇形数据
- explode 设置某几个分块是否要分离饼图
- labels 每块扇形标签
- autopct 百分比数据标签
- shadow 是否显示阴影
plt.pie()有3个返回值
- patches 绘制饼图每一块的对象
- texts 文本的列表
- autotexts 百分比的文本列表
1 | from matplotlib import pyplot as plt |
雷达图
雷达图(Radar Chart)又被叫做蜘蛛网图,适用于显示三个或更多的维度的变量的强弱情况。比如某个企业在哪些业务方面的投入等,都可以用雷达图方便的表示。
通过
plt.polar
来绘制雷达图,这个方法的参数跟plt.plot
非常的类似,只不过是x
轴的坐标点应该为弧度(2*PI=360°)。注意:
- 因为
polar
并不会完成线条的闭合绘制,所以我们在绘制的时候需要在theta
中和values
中在最后多重复添加第0个位置的值,然后在绘制的时候就可以和第1个点进行闭合了。 polar
只是绘制线条,所以如果想要把里面进行颜色填充,那么需要调用fill
函数来实现。polar
默认的圆圈的坐标是角度,如果我们想要改成文字显示,那么可以通过xticks
来设置。
- 因为
1 | import matplotlib.pyplot as plt |
箱型图
箱线图是一种直观简洁的方式去呈现一组数据的分布。 箱线图广泛用于各个数据分析领域,它能非常简单明了地显示一组数据中5个重要数值,并且还能发现一组数据中的存在的异常值。
- 最大值
- 最小值
- 中位数
- 下四分位数(Q1)
- 上四分位数(Q3)
plt.boxplot()
- x:需要绘制的箱型图的数据
- notch:是否展示置信区间 默认为False
- sym:代表异常点的符号表示 默认为圆点
- vert:是否是垂直的 默认是True
- whis:上下限系数 默认为1.5
- positions:设置每个盒子的位置
- widths:设置每个盒子的宽度
- labels:每个盒子的label
- meanline和showmean:都为True的时候 会展示平均线
1 | import matplotlib.pyplot as plt |