数据分析之matplotlib
一,介绍
Matplotlib是一个Python 绘图库,可以生成各种硬拷贝格式和跨平台交互式环境的出版物质量数据。Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
![截图](https://matplotlib.org/_images/sphx_glr_membrane_thumb.png)
![截图](https://matplotlib.org/_images/sphx_glr_histogram_thumb.png)
![截图](https://matplotlib.org/_images/sphx_glr_contour_thumb.png)
![截图](https://matplotlib.org/_images/sphx_glr_3D_thumb.png)
Matplotlib试图让简单易事的事情成为可能。您只需几行代码即可生成绘图,直方图,功率谱,条形图,错误图,散点图等。有关示例,请参阅 示例图和缩略图库。
对于简单的绘图,pyplot
模块提供类似MATLAB的界面,特别是与IPython结合使用时。对于高级用户,您可以通过面向对象的界面或通过MATLAB用户熟悉的一组函数完全控制线型,字体属性,轴属性等。
二,基本使用
1,安装
使用jupyter notebook即可
导包:
import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import Series,DataFrame from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 %matplotlib inline
2,包含单条曲线的图
- 注意:y,x轴的值必须为数字
x = [1,2,3,4,5,6,7,8,9,10] y = [10,9,8,7,6,5,4,3,2,1] plt.plot(x,y)
3,包含多个曲线的图
4,将多个曲线图绘制在一个table区域中:对象形式创建表图
5,网格线 plt.grid(XXX)
参数:
- axis 轴向
- color:支持十六进制颜色
- linestyle: -- -. : 线的格式
- alpha 透明度
![](https://img2018.cnblogs.com/blog/1304968/201811/1304968-20181107172212664-1721906348.png)
6,坐标轴界限
设置画布比例:plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍
![](https://img2018.cnblogs.com/blog/1304968/201811/1304968-20181107172419909-1435465307.png)
7,坐标轴标签
- s 标签内容
- color 标签颜色
- fontsize 字体大小
- rotation 旋转角度
两种传参方法:
- 分别在plot函数中增加label参数,再调用plt.legend()方法显示
- 直接在legend方法中传入字符串列表
legend的参数
- loc参数
- loc参数用于设置图例标签的位置,一般在legend函数内
- matplotlib已经预定义好几种数字表示的位置
loc的可选值:
9,保存图片
使用figure对象的savefig函数来保存图片
fig = plt.figure()---必须放置在绘图操作之前
figure.savefig的参数选项
- filename
含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG (“png”、“pdf”、“svg”、“ps”、“eps”……) - dpi
图像分辨率(每英寸点数),默认为100 - facecolor ,打开保存图片查看 图像的背景色,默认为“w”(白色)
10,设置plot的风格和样式
plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色、线型、点型等要素,语法形式为:
plt.plot(X, Y, 'format', ...)
颜色
参数color或c
三、2D图形
1,直方图
- 是一个特殊的柱状图,又叫做密度图。
【直方图的参数只有一个x!!!不像条形图需要传入x,y】
plt.hist()的参数
- bins
直方图的柱数,可选项,默认为10 - color
指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色 - orientation
通过设置orientation为horizontal创建水平直方图。默认值为vertical
返回值 :
1: 直方图向量,是否归一化由参数normed设定
2: 返回各个bin的区间范围
3: 返回每个bin里面包含的数据,是一个list
2,条形图
plt.bar()
- 参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度
-【条形图有两个参数x,y】
- width 纵向设置条形宽度
- height 横向设置条形高度
bar()、barh()
3,饼图
饼图也只有一个参数x
pie()
饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小
饼图阴影、分裂等属性设置 # labels参数设置每一块的标签; # labeldistance参数设置标签距离圆心的距离(比例值) # autopct参数设置比例值小数保留位(%.3f%%); # pctdistance参数设置比例值文字距离圆心的距离 # explode参数设置每一块顶点距圆心的长度(比例值,列表); # colors参数设置每一块的颜色(列表); # shadow参数为布尔值,设置是否绘制阴影 # startangle参数设置饼图起始角度
4,散点图
因变量随自变量而变化的大致趋势
【散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!】
scatter()