大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事。但自从Python进入3.0时代以后,pandas的使用变得更加普及,它的身影经常见于市场分析、爬虫、金融分析以及科学计算中。

作为数据分析工具的集大成者,pandas作者曾说,pandas中的可视化功能比plt更加简便和功能强大。实际上,如果是对图表细节有极高要求,那么建议大家使用matplotlib通过底层图表模块进行编码。当然,我们大部分人在工作中是不会有这样变态的要求的,所以一句import pandas as pd就足够应付全部的可视化工作了。下面,我们总结一下PD库的一些使用方法和入门技巧。

一、线型图

对于pandas的内置数据类型,Series 和 DataFrame 都有一个用于生成各类 图表 的 plot 方法。 默认情况下, 它们所生成的是线型图。其实Series和DataFrame上的这个功能只是使用matplotlib库的plot()方法的简单包装实现。

参考以下示例代码 :

importpandas as pdimportnumpy as np

df= pd.DataFrame(np.random.randn(10,4),index=pd.date_range('2018/12/18',

periods=10), columns=list('ABCD'))

df.plot()

执行上面示例代码,得到以下结果 -

如果索引由日期组成,则调用gct().autofmt_xdate()来格式化x轴,如上图所示。

我们可以使用x和y关键字绘制一列与另一列。

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

s. plot()

pandas 的大部分绘图方法都有 一个 可选的ax参数, 它可以是一个 matplotlib 的 subplot 对象。 这使你能够在网格 布局 中 更为灵活地处理 subplot 的位置。 DataFrame的plot 方法会在 一个 subplot 中为各列绘制 一条 线, 并自动创建图例( 如图所示):

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

df. plot()

二、柱状图

在生成线型图的代码中加上 kind=' bar'( 垂直柱状图) 或 kind=' barh'( 水平柱状图) 即可生成柱状图。 这时,Series 和 DataFrame 的索引将会被用 作 X( bar) 或 (barh)刻度:

In [59]: fig, axes = plt. subplots( 2, 1)

In [60]: data = Series( np. random. rand( 16), index= list('abcdefghijklmnop'))

In [61]: data. plot( kind='bar', ax= axes[ 0], color='k', alpha= 0. 7)

Out[61]: < matplotlib. axes. AxesSubplot at 0x4ee7750>In [62]: data. plot( kind='barh', ax= axes[ 1], color='k', alpha= 0.

对于 DataFrame, 柱状 图 会 将 每一 行的 值 分为 一组, 如图 8- 16 所示:

In [63]: df = DataFrame( np. random. rand( 6, 4), ...: index=['one', 'two', 'three', 'four', 'five', 'six'], ...: columns= pd. Index(['A', 'B', 'C', 'D'], name='Genus'))

In [64]: df

Out[64]:

Genus

A B C D

one 0.301686 0. 156333 0. 371943 0. 270731two 0.750589 0. 525587 0. 689429 0. 358974three 0.381504 0. 667707 0. 473772 0. 632528four 0.942408 0. 180186 0. 708284 0. 641783five 0.840278 0. 909589 0. 010041 0. 653207six 0. 062854 0. 589813 0. 811318 0. 060217In [65]: df. plot( kind='bar')

三、条形图

现在通过创建一个条形图来看看条形图是什么。条形图可以通过以下方式来创建 -

importpandas as pdimportnumpy as np

df= pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])

df.plot.bar()

执行上面示例代码,得到以下结果 -

要生成一个堆积条形图,通过指定:pass stacked=True -

importpandas as pd

df= pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])

df.plot.bar(stacked=True)

执行上面示例代码,得到以下结果 -

要获得水平条形图,使用barh()方法 -

importpandas as pdimportnumpy as np

df= pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])

df.plot.barh(stacked=True)

四、直方图

可以使用plot.hist()方法绘制直方图。我们可以指定bins的数量值。

importpandas as pdimportnumpy as np

df= pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':

np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])

df.plot.hist(bins=20)

执行上面示例代码,得到以下结果 -

要为每列绘制不同的直方图,请使用以下代码 -

importpandas as pdimportnumpy as np

df=pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':

np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])

df.hist(bins=20)

执行上面示例代码,得到以下结果 -

五、箱型图

Boxplot可以绘制调用Series.box.plot()和DataFrame.box.plot()或DataFrame.boxplot()来可视化每列中值的分布。

例如,这里是一个箱形图,表示对[0,1)上的统一随机变量的10次观察的五次试验。

importpandas as pdimportnumpy as np

df= pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

df.plot.box()

执行上面示例代码,得到以下结果 -

六、块型图

可以使用Series.plot.area()或DataFrame.plot.area()方法创建区域图形。

importpandas as pdimportnumpy as np

df= pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])

df.plot.area()

执行上面示例代码,得到以下结果 -

七、散点图

可以使用DataFrame.plot.scatter()方法创建散点图。

importpandas as pdimportnumpy as np

df= pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd'])

df.plot.scatter(x='a', y='b')

执行上面示例代码,得到以下结果 -

八、饼状图

饼状图可以使用DataFrame.plot.pie()方法创建。

importpandas as pdimportnumpy as np

df= pd.DataFrame(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'], columns=['x'])

df.plot.pie(subplots=True)

执行上面示例代码,得到以下结果 -

公众号python社区营

文章来源: www.cnblogs.com,作者:pypypypy,版权归原作者所有,如需转载,请联系作者。

原文链接:https://www.cnblogs.com/pypypy/p/12147163.html

python数据生成可视化_Python数据分析:手把手教你用Pandas生成可视化图表相关推荐

  1. python数据分析图_Python数据分析:手把手教你用Pandas生成可视化图表的教程

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

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

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

  3. python数据预测案例_Python数据分析及可视化实例之疾病预测(分类)

    Talk is cheap , show U the code. 该源码注释比较全面,需要对SKlearn有一定的了解, 当然,你也可以把它视作黑箱,做个调包侠也是大侠, 没错,本主用Bokeh进行可 ...

  4. python数据分享人力资源_Python数据分析帮你清晰的了解整理员工们的工作效率和整体满意度...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 项目背景 2018年,被称为互联网的寒冬之年.无论大小公司,纷纷走上了裁员 ...

  5. json 数据 生成 图表_Python数据分析:手把手教你用Pandas生成可视化图表

    一: Pandas是什么? Pandas是一个强大的分析结构化数据的工具集:它的使用基础是Numpy(提供高性能的矩阵运算):用于数据挖掘和数据分析,同时也提供数据清洗功能. 利器之一:DataFra ...

  6. python数据建模工具_python数据分析工具——Pandas、StatsModels、Scikit-Learn

    Pandas Pandas是 Python下最强大的数据分析和探索工具.它包含高级的数据结构和精巧的工具,使得在 Python中处理数据非常快速和简单. Pandas构建在 Numpy之上,它使得以 ...

  7. python数据包分析_python | 数据分析(一)- Numpy数据包

    # 导入numpy包 import numpy as np """ ***************** 一.数组操作 ***************** "&q ...

  8. matlab 条形图误差线,数据可视化系列:手把手教你绘制带误差线的条形图

    原标题:数据可视化系列:手把手教你绘制带误差线的条形图 条形图可以用于展示数据不同分类下的均值.中位数.标准差和置信区间等,Excel可以实现,但对于带误差线的条形图而言,还是比较麻烦的.R语言的基础 ...

  9. 手把手教你写一个生成对抗网络

    成对抗网络代码全解析, 详细代码解析(TensorFlow, numpy, matplotlib, scipy) 那么,什么是 GANs? 用 Ian Goodfellow 自己的话来说: " ...

最新文章

  1. 详解vue 路由跳转四种方式 (带参数)
  2. java面向对象测试_Java面向对象测试题(一).doc
  3. spring boot 菜鸟教程学习:spring是一个超级大工厂能够管理java对象(bean)和他们之间的关系(依赖注入)
  4. c# WinForm英雄联盟挂机源码及实现原理
  5. [转载]一个游戏程序员的学习资料
  6. mysql优化--叶金荣老师讲座笔记
  7. JeecgBoot手机端安装配置流程
  8. cmake 构建路径_基于CMake构建系统的MLIR Example扩展
  9. css3转换图形展示,CSS3的常见transformation图形变化用法小结
  10. 开源ERP PK 传统ERP_开源ERP商业模式及前景访谈(视频) 转
  11. 如何在macOS Big Sur的Voice Memos中使用增强录音和智能文件夹?
  12. Mongodb高级查询【二】
  13. 原理图与 PCB 绘制备忘
  14. DTCC参会归来有感
  15. java 多线程 银行排队_3.采用多线程模拟银行排队叫号
  16. 程序人生 - Nature封面:脑机接口突破,可将脑中“笔迹”转为屏幕字句,速度创纪录,准确率超高
  17. SQA软件质量保证工程师工作职责与素质要求
  18. ShareTech大企业邮件服务器系统软件
  19. Cloudflare找不到服务器 IP 地址
  20. 中软国际java 笔试 面试题

热门文章

  1. xcode 4 制作静态库(转)
  2. 概率论与数理统计 (二)计算题和应用题
  3. 软件开发中的V字模型与W模型(使开发与侧试分离)
  4. Excel的裁剪(trimming)(トリミング)功能使用介绍
  5. 【Python】ix,loc,iloc的区别
  6. 怎样解决jsp:include标签在包括html文件时遇到的乱码问题
  7. java异常处理:finally中不要return
  8. 解决github拉项目慢的问题
  9. 谷歌chrome浏览器提示“喔唷 崩溃啦”的解决方案
  10. Java 8中的::(双冒号)运算符