单一图表
直方图
直方图(Histogram)又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据的分布情况。一般用横轴表示数据类型,纵轴表示分布情况。直方图可以非常直观地展示每个属性的分布状况。通过图表可以很直观地看到数据是高斯分布、指数分布还是偏态分布。
from pandas import read_csv
import matplotlib.pyplot as plt
filename = 'pima data.csv'
names = ['preg', 'plas','pres','skin','test','mass','pedi','age', 'class']
data = read_csv(filename, names=names)
data.hist()
plt.show()
密度图
密度图是一种表现与数据值对应的边界或域对象的图形表示方法,一般用于呈现连续变量。密度图类似于对直方图进行抽象,用平滑的线来描述数据的分布。这也是一种用来显示数据分布的图表。
data.plot(kind='density',subplots=True, layout=(3, 3),sharex=False)
plt.show()
箱线图
箱线图又称盒须图、盒式图或箱形图,是一种用于显示一组数据分散情况的统计图。因形状如箱子而得名,在各种领域都经常被使用。箱线图也是一种非常好的用于显示数据分布状况的手段。首先画一条中位数线,然后以下四分位数和上四分位数画一个盒子,上下各有一条横线,表示上边缘和下边缘,通过横线来显示数据的伸展状况,游离在边缘之外的点为异常值。
data.plot(kind= 'box',subplots=True, layout=(3,3), sharex=False)
plt.show()
多重图表
接下来将介绍两种图表,以显示不同属性之间的关联关系:相关矩阵图和散点矩阵图。
相关矩阵图
相关矩阵图主要用来展示两个不同属性相互影响的程度。如果两个属性按照相同的方向变化,说明是正向影响。如果两个属性朝相反方向变化,说明是反向影响。把所有属性两两影响的关系展示出来的图表就叫相关矩阵图。矩阵图法就是从多维问题的事件中找出成对的因素,排列成矩阵图,然后根据矩阵图来分析问题,确定关键点。它是一种通过多因素综合思考来探索问题的好方法.
from pandas import read_csv
import matplotlib.pyplot as plt
import numpy as np
filename = 'pima data.csv'
names = ['preg', 'plas','pres','skin','test','mass','pedi','age', 'class']
data = read_csv(filename, names=names)
correlations = data.corr()
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(correlations, vmin = -1 , vmax=1) fig.colorbar(cax)
ticks= np.arange(0, 9 , 1)
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.set_xticklabels(names)
ax.set_yticklabels(names)
plt.show()
在图表的左边和上边显示的是完全相同的属性名称,通过这个矩阵可以很清楚地看到各个属性两两关联的关系
散点矩阵图
散点矩阵图表示因变量随自变量变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。散点矩阵图由两组数据构成多个坐标点,考察坐标点的分布,可以判断两个变量之间是否存在某种关联或总结坐标点的分布模式。散点矩阵图将序列显示为一组点,值由点在图表中的位置表示,类别由图表中的不同标记表示。散点矩阵图通常用于比较跨类别的聚合数据。当同时考察多个变量的相关关系时,若一一绘制它们的简单散点图将十分麻烦。此时可利用散点矩阵图来绘制各个变量间的散点图,这样可以快速发现多个变量间的主要相关性,这在进行多元线性回归时显得尤为重要.
from pandas.plotting import scatter_matrix
scatter_matrix(data)
plt.show()