在数据分析领域,最出名的绘图工具就是matlib。在Python同样有类似的功能。就是matplotlib。前面几章我们都在介绍数据的生成,整理,存储。那么这一章将介绍如果图形化的呈现这些数据。来看下面的代码

这个代码通过numpy生成50个随机数,然后进行求和,最后将50个数绘制成图像,k--代表以虚线的方式

import matplotlib.pyplot as plt

from numpy.random import randn

if __name__=="__main__":

plt.plot(randn(50).cumsum(),'k--')

plt.show()

得到的图片如下

我们还可以在一副图中显示多个图片。

fig=plt.figure()

ax1=fig.add_subplot(2,2,1)

ax2=fig.add_subplot(2,2,2)

ax3=fig.add_subplot(2,2,3)

ax4=fig.add_subplot(2,2,4)

plt.show()

matplotlib的图像都位于Figure对象中,通过fig.add_subplot可以创建多个图片。比如fig.add_subplot(2,2,1)代表总共4个图像,1代表为第1个图像。那么这样我们就可以绘制多个图像,每个图像用不同的方式来呈现

fig=plt.figure()

ax1=fig.add_subplot(2,2,1)

ax2=fig.add_subplot(2,2,2)

ax3=fig.add_subplot(2,2,3)

ax4=fig.add_subplot(2,2,4)

ax1.plot(randn(50).cumsum(), 'k--')

ax2.hist(randn(50).cumsum())

ax3.scatter(np.arange(30),np.arange(30)+3*randn(30))

ax4.plot(randn(50).cumsum())

plt.show()

下面4 张图分别绘制了4种图形。

subplots的参数如下

我们还可以针对subplot调整各个图的间距,通过subplots_adjust就可以达到

下面的代码通过创造4个图像,且共享x,y坐标轴。通过wspace和hsapce设置为0,将各个图像的左右,上下边界都连接在了一起。

fig,axis=plt.subplots(2,2,sharex=True,sharey=True)

[axis[i,j].hist(randn(50),bins=50,color='k',alpha=0.5) for i in range(2) for j in range(2)]

plt.subplots_adjust(wspace=0, hspace=0)

plt.show()

结果如下:

前面介绍了如何作图,下面将对图片进行更细化的操作,设置x,y轴的刻度以及设置图片标题。在下面的代码中,设置x的刻度为0,10,25,40,50几个区间并设置图片的标题为test

fig=plt.figure()

ax=fig.add_subplot(1,1,1)

ax.plot(randn(50).cumsum(),'k',label='one')

ax.set_xticks([0,10,25,40,50])

ax.set_title("test")

plt.show()

结果如下:

还可以通过ax.text(x,y,"2010")的方式对图标上的某一点坐标进行文本标注

比如ax.text(0,0,"2010")就在0,0的坐标上标注2010的样式

既然生成了图片,那么该如何保存呢. 通过savefig的方式就可以进行保存,通过指定不同的图片后缀名就可以进行文件的保存。

plt.savefig("figure.svg")

plt.savefig("figure.jpg")

plt.savefig("figure.png")

pandas中的绘图函数:

前面介绍了matplotlib中的绘图方法,这一章将介绍pandas中绘图方法。代码如下

首先通过Series产生数据,然后Series对象的索引会被传递给matplotlib用于绘制X轴

s=Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))

s.plot(color='k',alpha=0.7)

plt.title('pandas test')

plt.show()

结果如下所示:

接下来看下DataFrame的结果图:

d=DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'],index=np.arange(0,100,10))

d.plot()

plt.show()

结果如下:

通过上图可以看到DataFrame的plot方法会在一个subplot中为各列绘制一条线,并自动创建图例。

Series.plot方法的参数:

DataFrame的plot参数

在plot中通过指定kind可以生成不同的图形,比如kind=’bar’就是生成柱状图

我们在来看下下面的这组数据,通过设置stacked=True即可为DataFrame生成堆积柱状图,这样可以使得每行的值就会被堆积在一起。

frame=DataFrame([[1,16,1,1,0,0],[2,53,18,13,1,0],[0,39,15,18,3,1],[1,48,4,5,1,3]],columns=[1,2,3,4,5,6],index=['Fri','Sat','Sun','Thur'])

frame.index.name=['day']

frame.columns.names=['size']

print frame

frame.plot(kind='barh',stacked=True)

plt.show()

数据如下:该数据的列表示人的索引。行代表是天数。这个数据的意义在与指示每个人在从周四到周日的消费情况

size   1   2   3   4  5  6

[day]

Fri    1  16   1   1  0  0

Sat    2  53  18  13  1  0

Sun    0  39  15  18  3  1

Thur   1  48   4   5  1  3

通过下面得到的结果来看,我们可以看到在周末的时候消费明显增加。

密度图:

密度图也成为kde图,这个图是生成标准正态分布图

s=Series(np.random.randn(20))

s.plot(kind='kde')

plt.show()

得到的正态分布图如下:

python数据分析之:绘图和可视化的更多相关文章

  1. Python 数据分析中常用的可视化工具

    Python 数据分析中常用的可视化工具 1 Matplotlib 用于创建出版质量图表的绘图工具库,目的是为 Python 构建一个 Matlab 式的绘图接口. 1.1 安装 Anaconada ...

  2. 利用python进行数据分析之绘图和可视化

    matplotlib API入门 使用matplotlib的办法最常用的方式是pylab的ipython,pylab模式还会向ipython引入一大堆模块和函数提供一种更接近与matlab的界面,ma ...

  3. 利用Python进行数据分析_Pandas_绘图和可视化_Matplotlib

    1 认识Figure和Subplot import matplotlib.pyplot as plt matplotlib的图像都位于Figure对象中 fg = plt.figure() 通过add ...

  4. 《Python数据分析》笔记——数据可视化

    数据可视化 matplotlib绘图入门 为了使用matplotlib来绘制基本图像,需要调用matplotlib.pyplot子库中的plot()函数 import matplotlib.pyplo ...

  5. Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

    第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...

  6. Python数据分析:手把手教你用Pandas生成可视化图表

    大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后, ...

  7. 【搬砖】【Python数据分析】Pycharm中plot绘图不能显示出来

    最近在看<Python数据分析>这本书,而自己写代码一直用的是Pycharm,在练习的时候就碰到了plot()绘图不能显示出来的问题.网上翻了一下找到知乎上一篇回答,试了一下好像不行,而且 ...

  8. python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言)

    python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言) 感觉要总结总结了,希望这次能写个系列文章分享分享心得,和大神们交流交流,提升提升. 因为 ...

  9. python金融与量化分析------Matplotlib(绘图和可视化)

    -----------------------------------------------------------Matplotlib:绘图和可视化------------------------ ...

  10. Python之绘图和可视化

    Python之绘图和可视化 1. 启用matplotlib 最常用的Pylab模式的IPython(IPython --pylab) 2. matplotlib的图像都位于Figure对象中. 可以使 ...

随机推荐

  1. mac 破解photoshop cs6

    1 首先安装photoshop cs6,安装好后退出 2 下载破解补丁 破解补丁文件网盘下载:https://pan.baidu.com/s/1hrXieqS 或自行在百度网页里搜amtlib.fra ...

  2. 优化算法——拟牛顿法之L-BFGS算法

    一.BFGS算法 在"优化算法--拟牛顿法之BFGS算法"中,我们得到了BFGS算法的校正公式: 利用Sherman-Morrison公式可对上式进行变换,得到 令,则得到: 二. ...

  3. 【Salvation】——怪物角色动画&主角碰撞死亡动画

    写在前面:这个动画功能同样也是使用JavaScript编写脚本,在Unity3D游戏引擎的环境中实现,在怪物的角色动画中,很多与人物相同,这里不再重复. 一.设计敌人 拖一个精英sprite到层次面板 ...

  4. 微信小程序 - 时间戳转时间

    获取当前时间:十位unix时间戳 var timestamps = Math.round(new Date().getTime() / 1000).toString(); 时间戳转时间(官方自带) 使 ...

  5. Iptables实现公网IP DNAT/SNAT

    Iptables实现NAT是最基本的功能,大部分家用路由都是基于其SNAT方式上网,使用Iptables实现外网DNAT也很简单,不过经常会出现不能正常NAT的现象.以下命令将客户端访问1.1.1.1 ...

  6. jenkins构建一个go项目

    Jenkins安装   最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8 安装jdk1.8 yum install -y java-1.8.0-openjdk wget -O / ...

  7. Mybatis无法扫描到mapper.xml文件

    在Mybatis中默认扫描与mapper包同路径下的xml,resource文件的文件夹名称不能一次性创建,如com.baidu.mapper需要创建3次 这里如果是idea开发工具,一次创建与分开创 ...

  8. 【Unity 3D】学习笔记三十三:游戏元素——天空盒子

    天空盒子 一般的3D游戏都会有着北京百年一遇的蓝天.让人惊叹不已.事实上天空这个效果没有什么神奇的仅仅需用到天空盒子这个组件即可.能够将天空设想成一个巨大的盒子,这个盒子将整个游戏视图和全部的游戏元素 ...

  9. Linux禁止Ctrl+Alt+Del重新启动

    方法1:改动/etc/inittab 屏蔽 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now 或者删除改行内容 保存退出 适用对象:RedHat4.8 ...

  10. uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结

    uint8_t / uint16_t / uint32_t /uint64_t  是什么数据类型 在nesc的代码中,你会看到非常多你不认识的数据类型,比方uint8_t等.咋一看.好像是个新的数据类 ...