数据可视化

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. FPGA和DSP间基于SRIO的高速通信系统设计

    作者:陈婷,岳强,汪洋 解放军信息工程大学 摘要: 现代信号处理系统通常需要在不同处理器之间实现高速数据通信,SRIO协议由于高效率.低延时的特性被广泛使用.本文研究了在FPGA和DSP两种处理器之间 ...

  2. VS2017 - Winform 简单托盘小程序

    界面比较简单,主要两个button 一个NotifyIcon 和 右键菜单 控件, NotifyIcon 属性,如下: 并为NotifyIcon指定了DoubleClick事件: 主窗体增加两个事件: ...

  3. MapReduce-MulitipleOutputs实现自己定义输出到多个文件夹

    输入源数据例子: Source1-0001 Source2-0002 Source1-0003 Source2-0004 Source1-0005 Source2-0006 Source3-0007 ...

  4. python自动生成文件头

    "auto add pyhton header --start autocmd BufNewFile *.py 0r ~/.vim/vim_template/vim_python_heade ...

  5. 李洪强漫谈iOS开发[C语言-002]-开发概述程序的本质与简单执行过程

    李洪强iOS开发之应用程序的本质与简单执行过程 什么叫程序? 就是一段执行指令 程序的两个状态: 保存状态(保存到硬盘上)   运行状态(由CPU执行) 代码可以执行吗? CPU(中央处理器-> ...

  6. 小数数据精度问题Double与BigDecimal

    做项目的过程中涉及到小数问题的时候,一般我都用Double类型,但是经常出现*.999999998这种数据,然后自己再手动四舍五入,简直傻的要死. 明明就是一个1.51-1.38的问题,很简单怎么会得 ...

  7. F - Goldbach`s Conjecture 对一个大于2的偶数n,找有多少种方法使两个素数的和为n;保证素数a<=b; a+b==n; a,b都为素数。

    /** 题目:F - Goldbach`s Conjecture 链接:https://vjudge.net/contest/154246#problem/F 题意:对一个大于2的偶数n,找有多少种方 ...

  8. java.lang.IllegalStateException: class utils.filter.ContentFilter is not a javax.servlet.Filter

    1.错误描写叙述 2016-01-12 11:27:01.787:WARN:oejuc.AbstractLifeCycle:FAILED ContentFilter: java.lang.Illega ...

  9. python 开发技巧(1)-- 用PyCharm安装第三方库

    在python开发中,我们经常需要安装一些python的第三方类库,包等等,用PyCharm就会安装就会超级方便 1.打开上面的小扳手 2.点击页面左边的Project Interpreter 3.点 ...

  10. 配置LANMP环境(1)-- 安装虚拟机VMware与安装CentOS7.2系统

    一.安装虚拟机VMware 1.下载VMware傻瓜式安装 2.配置                二.安装CentOS7.2系统 镜像下载链接 1.放入ios镜像文件之后,启动虚拟机,选择7.0+的 ...