为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Python

简介

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

本章主要内容:

  • 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)](分别精确到小数点后两位和三位)

webp

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 plt

dataset_1 = anscombe[anscombe['dataset'] == 'I']
plt.plot(dataset_1['x'],dataset_1['y'])

webp

图片.png

  • 原点图

plt.plot(dataset_1['x'], dataset_1['y'], 'o')

webp

图片.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)

webp

图片.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')

webp

图片.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')

webp

图片.png

小结:

webp

图片.png



作者:python作业AI毕业设计
链接:https://www.jianshu.com/p/68969b118737


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消