数据分析工具pandas快速入门教程3绘图1matplotlib基础

简介

数据可视化是数据处理步骤的一部分。 通过可视化数据,我们可以获得更好的直观性。 另外,可视化也可以揭示数据中的隐藏模式,方便模型选择。

本章主要内容:

  • matplotlib
  • seaborn
  • pandas绘图

安斯库姆四重奏 数据集介绍

安斯库姆四重奏(Anscombe’s quartet)是四组基本的统计特性一致的数据,但由它们绘制出的图表则截然不同。每一组数据都包括了11个(x,y)点。这四组数据由统计学家弗朗西斯·安斯库姆(Francis Anscombe)于1973年构造,他的目的是用来说明在分析数据前先绘制图表的重要性,以及离群值对统计的影响之大。

这四组数据的共同统计特性如下:

性质数值
x平均数9
x方差11
y的平均数7.50(精确到小数点后两位)
y的方差4.122或4.127(精确到小数点后三位)
xy之间的相关系数0.816(精确到小数点后三位)
线性回归线y = 3.00 + 0.500 x {\displaystyle y=3.00+0.500x} [图片上传失败…(image-5d94e9-1534993415535)](分别精确到小数点后两位和三位)
数据分析工具pandas快速入门教程3绘图1matplotlib基础
image

在四幅图中,由第一组数据绘制的图表(左上图)是看起来最“正常”的,可以看出两个随机变量之间的相关性。从第二组数据的图表(右上图)则可以明显地看出两个随机变量间的关系是非线性的。第三组中(左下图),虽然存在着线性关系,但由于一个离群值的存在,改变了线性回归线,也使得相关系数从1降至0.81。最后,在第四个例子中(右下图),尽管两个随机变量间没有线性关系,但仅仅由于一个离群值的存在就使得相关系数变得很高。

爱德华·塔夫特(Edward Tufte)在他所著的《图表设计的现代主义革命》(The Visual Display of Quantitative Information)一书的第一页中,就使用安斯库姆四重奏来说明绘制数据图表的重要性。

该数据集可以从seaborn导入

>>> import seaborn as sns>>> anscombe = sns.load_dataset("anscombe")>>> print(anscombe)   dataset     x      y0        I  10.0   8.041        I   8.0   6.952        I  13.0   7.583        I   9.0   8.814        I  11.0   8.335        I  14.0   9.966        I   6.0   7.247        I   4.0   4.268        I  12.0  10.849        I   7.0   4.8210       I   5.0   5.6811      II  10.0   9.1412      II   8.0   8.1413      II  13.0   8.7414      II   9.0   8.7715      II  11.0   9.2616      II  14.0   8.1017      II   6.0   6.1318      II   4.0   3.1019      II  12.0   9.1320      II   7.0   7.2621      II   5.0   4.7422     III  10.0   7.4623     III   8.0   6.7724     III  13.0  12.7425     III   9.0   7.1126     III  11.0   7.8127     III  14.0   8.8428     III   6.0   6.0829     III   4.0   5.3930     III  12.0   8.1531     III   7.0   6.4232     III   5.0   5.7333      IV   8.0   6.5834      IV   8.0   5.7635      IV   8.0   7.7136      IV   8.0   8.8437      IV   8.0   8.4738      IV   8.0   7.0439      IV   8.0   5.2540      IV  19.0  12.5041      IV   8.0   5.5642      IV   8.0   7.9143      IV   8.0   6.89

matplotlib

  • 折线图(默认)
import matplotlib.pyplot as pltdataset_1 = anscombe[anscombe['dataset'] == 'I']plt.plot(dataset_1['x'],dataset_1['y'])
数据分析工具pandas快速入门教程3绘图1matplotlib基础
图片.png
  • 原点图
plt.plot(dataset_1['x'], dataset_1['y'], 'o')
数据分析工具pandas快速入门教程3绘图1matplotlib基础
图片.png
  • 组合图
# create subsets of the anscombe datadataset_2= anscombe[anscombe['dataset'] == 'II']dataset_3 = anscombe[anscombe['dataset'] == 'III']dataset_4 = anscombe[anscombe['dataset'] == 'IV']fig = plt.figure()axes1 = fig.add_subplot(2, 2, 1)axes2 = fig.add_subplot(2, 2, 2)axes3 = fig.add_subplot(2, 2, 3)axes4 = fig.add_subplot(2, 2, 4)
数据分析工具pandas快速入门教程3绘图1matplotlib基础
图片.png

填充数据

# add a plot to each of the axes created aboveaxes1.plot(dataset_1['x'], dataset_1['y'], 'o')axes2.plot(dataset_2['x'], dataset_2['y'], 'o')axes3.plot(dataset_3['x'], dataset_3['y'], 'o')axes4.plot(dataset_4['x'], dataset_4['y'], 'o')
数据分析工具pandas快速入门教程3绘图1matplotlib基础
图片.png

添加标签

# add a plot to each of the axes created aboveaxes1.plot(dataset_1['x'], dataset_1['y'], 'o')axes2.plot(dataset_2['x'], dataset_2['y'], 'o')axes3.plot(dataset_3['x'], dataset_3['y'], 'o')axes4.plot(dataset_4['x'], dataset_4['y'], 'o')
数据分析工具pandas快速入门教程3绘图1matplotlib基础
图片.png

小结:

数据分析工具pandas快速入门教程3绘图1matplotlib基础
图片.png

参考资料

  • 讨论qq群144081101 591302926 567351477 钉钉免费群21745728
文章链接:https://www.sbkko.com/ganhuo-252.html
文章标题:数据分析工具pandas快速入门教程3绘图1matplotlib基础
文章版权:SBKKO 所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

给TA打赏
共{{data.count}}人
人已打赏
干货分享

你真的会用思维导图鱼骨图吗?

2018-8-23 9:40:00

干货分享

数据分析工具pandas快速入门教程3绘图2matplotlib统计图

2018-8-23 12:39:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索