数据可视化

matplotlib绘图入门

为了使用matplotlib来绘制基本图像,需要调用matplotlib.pyplot子库中的plot()函数

import matplotlib.pyplot as plt
import numpy as np x=np.linspace(0,20)
plt.plot(x,.5+x)
plt.plot(x,1+2*x,'--') plt.show()

对数图

所谓对数图,实际上就是使用对数坐标绘制的图形。对于对数刻度来说,其间隔表示的是变量的值在数量级上的变化,这与线性刻度有很大的不同。对数图又分为两种不同的类型,其中一种称为双对数图,它的特点是两个坐标轴都采用对数刻度,对应的matplotlib函数是matplotlib.pyplot.loglog()。半对数图的一个坐标轴采用线性标度,另一个坐标轴使用对数刻度,它对应的matplotlib API是semilogx()函数和smilogy()函数。在双对数图上,幂律表现为直线;在半对数图上,直线则代表的是指数律。

numpy中的polyfit()函数可以用多项式来拟合数据

numpy中的polyval()函数可以用来对上面得到的多项式进行评估。

散点图

散点图可以形象展示直角坐标系中两个变量之间的关系。在散点图中,每个数据点的位置实际上就是两个变量的值。变量之间的任何关系可以拿散点图来示意。上升趋势模式通常意味着正相关。泡式图是对散点图的一种扩展。在泡式图中,每个数据点都被一个气泡所包围,它由此得名;而第三个变量的值正好可以用来确定气泡的相对大小。

matplotlib API提供的scatter()函数就是用于实现散点图

图例和注解

数据图都带有下列辅助信息

1.用来描述图中各数据序列的图例。为此,可以使用matplotlib提供的legend()函数,来给每个数据序列提供相应的标签

2.对图中要点的注解。为此,可以借助matplotlib提供的annotate()函数。matplotlib生成的注解包括标签和箭头两个组成部分。这个函数提供了多个参数,用以描述标签和箭头形式以及其位置。

3.横轴和纵轴的标签。这些标签可以通过xlabel()和ylabel()函数绘制出来

4.一个说明性质的标题,通常由matplotlib的title()函数来提供

5.网格,对于轻松定位数据点非常有帮助。matplotlib提供的grid()函数可以用来决定是否启用网格

三维图

Axes3D是由matplotlib API提供的一个类,可以用来绘制三维图。通过讲解这个类的工作机制,就能够明白面向对象的matplotlib API的原理。matplotlib的figure类是存放各种图像元素的顶级容器。

1.创建一个Figure对象

fig=plt.figure()

2.利用Figure对象创建一个Axes3D对象

ax=Axes3D(fig)

3.创建坐标矩阵时,可以借助Numpy中的meshgrid()函数

X,Y=np.meshgrid(X,Y)

4.通过Axes3D类的plot_surface()方法为数据绘制图像

ax.plot_surface(X,Y,Z)

5.根据面向对象API函数的命名约定,应该以set_开头,以程序对应的函数名结尾,具体如下:

ax.set_xlabel('year')
ax.set_ylabel('Log1')
ax.set_zlabel('Log2')
ax.set_title('66666')

pandas绘图

pandas的series类和DataFrame类中的plot()方法都封装了相关的matplotlib函数

为了创建半对数图,需要增设logy参数

df.plot(logy=True)

为了创建散点图,需要把参数kind设为scatter,同时,还要指定两个列。此外,如果将参数loglog设为True,就会生成一个双对数(log-log图)

df[df['gpu_trans_count']>0].plot(kind='scatter',x='trans_count',y='gpu_trans_count',loglog=True)

时滞图

时滞图实际上就是一幅散点图,只不过把时间序列的图像及相同序列在时间轴上后延的图像放在一起展示而已。

我们可以利用pandas子库pandas.tools.plotting中的lag_plot()函数,来绘制时滞图

lag_plot(df['trans_count'])

自相关图

自相关图描述的是时间序列数据在不同时间延迟情况下的自相关性。所谓自相关,就是一个时间序列与相同数据在不同时间延迟情况下的相互关系。利用pandas子库pandas.tools.plotting中的autocorrelation_plot()函数,就可以画出自相关图了。

《Python数据分析》笔记——数据可视化的更多相关文章

  1. python数据分析笔记——数据加载与整理]

    [ python数据分析笔记——数据加载与整理] https://mp.weixin.qq.com/s?__biz=MjM5MDM3Nzg0NA==&mid=2651588899&id ...

  2. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  3. 在我的新书里,尝试着用股票案例讲述Python爬虫大数据可视化等知识

    我的新书,<基于股票大数据分析的Python入门实战>,预计将于2019年底在清华出版社出版. 如果大家对大数据分析有兴趣,又想学习Python,这本书是一本不错的选择.从知识体系上来看, ...

  4. python grib气象数据可视化

    基于Python的Grib数据可视化           利用Python语言实现Grib数据可视化主要依靠三个库——pygrib.numpy和matplotlib.pygrib是欧洲中期天气预报中心 ...

  5. 【python数据分析实战】电影票房数据分析(二)数据可视化

    目录 图1 每年的月票房走势图 图2 年票房总值.上映影片总数及观影人次 图3 单片总票房及日均票房 图4 单片票房及上映月份关系图 在上一部分<[python数据分析实战]电影票房数据分析(一 ...

  6. python 爬虫与数据可视化--matplotlib模块应用

    一.数据分析的目的(利用大数据量数据分析,帮助人们做出战略决策) 二.什么是matplotlib? matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB ...

  7. Python数据分析笔记

    最近在看Python数据分析这本书,随手记录一下读书笔记. 工作环境 本书中推荐了edm和ipython作为数据分析的环境,我还是刚开始使用这种集成的环境,觉得交互方面,比传统的命令行方式提高了不少. ...

  8. Python TVTK 标量数据可视化与矢量数据可视化,空间轮廓线可视化

    Python数据可视化分为 标量可视化,矢量可视化,轮廓线可视化 标量又称无向量,只有大小没有方向,运算遵循代数运算法则比如质量,密度,温度,体积,时间 矢量又称向量,它是由大小,方向共同确定的量,运 ...

  9. 使用 jupyter-notebook + python + matplotlib 进行数据可视化

    上次用 python 脚本中定期查询数据库,监视订单变化,将时间与处理完成订单的数量进行输入写入日志,虽然省掉了人为定时查看数据库并记录的操作,但是数据不进行分析只是数据,要让数据活起来! 为了方便看 ...

随机推荐

  1. Angularjs学习笔记2_添加删除DOM元素

    1.调用element方法     angular.element(html) 把字符串或dom对象转化成一JQuery对象, angular.element(document.getElementB ...

  2. poj2184 Cow Exhibition(p-01背包的灵活运用)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:id=2184">http://poj.org/problem?id=2184 Descrip ...

  3. 初识Quartz(三)

    本文将介绍CronTrigger的使用方法,CronTrigger相比 SimpleTrigger可以支持更复杂的作业计划.cron这一观念来自UNIX,在UNIX中,cron是一个运行于后台的守护程 ...

  4. PyCharm创建文件时自动添加头注释

    进入设置 File->settings->Editor->File and Code Templates->Python Script 添加以下代码: #!/usr/bin/e ...

  5. 2038: [2009国家集训队]小Z的袜子(hose) 分块

    : [2009国家集训队]小Z的袜子(hose) Time Limit: Sec Memory Limit: MB Submit: Solved: [Submit][Status][Discuss] ...

  6. MVVMLight-Mensenger 学习笔记

    MVVMLight-Mensenger  最近一直在使用WPF,配合美工很容易能搭配出效果不错的UI来,开发效率也明显加快 自己也是最近才开始使用Mvvmlight,通过view和viewmodel分 ...

  7. java.lang.IllegalArgumentException: column '_id' does not exist问题的解决方案

    我在使用SimpleCursorAdapter的过程中遇到了问题: java.lang.IllegalArgumentException: column '_id' does not exist 这个 ...

  8. 微信小程序 一些要点

    微信小程序,weixin,关于微信小程序,那些开发文档没有告诉你的-微信小程序开发资源-微信开发者平台,微信开发者社区,微信小程序开发者社区 Discuz! Team and Comsenz UI T ...

  9. Python:Django【基础篇】

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  10. 32位Win7下安装与配置PHP环境(一)

    运行PHP网站,主要需要安装.配置三个软件,Apache.PHP和MySQL.如果需要编辑调试PHP程序,还要安装一个编辑调试软件. 一. Apache Apache是和IIS类似的一个软件,是运行在 ...