Python之神奇的绘图库matplotlib

Python08

Python之神奇的绘图库matplotlib,第1张

matplotlib是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。本文将以例子的形式分析matplot中支持的,分析中常用的几种图。其中包括填充图、散点图(scatter plots)、. 条形图(bar plots)、等高线图(contour plots)、 点阵图和3D图,下面来一起看看详细的介绍:

一、填充图

参考代码

简要分析

这里主要是用到了fill_between函数。这个函数很好理解,就是传入x轴的数组和需要填充的两个y轴数组;然后传入填充的范围,用where=来确定填充的区域;最后可以加上填充颜色啦,透明度之类修饰的参数。

相关推荐:《Python教程》

效果图

二、散点图(scatter plots)

参考代码

简要分析

1.首先介绍一下numpy 的normal函数,很明显,这是生成正态分布的函数。这个函数接受三个参数,分别表示正态分布的平均值,标准差,还有就是生成数组的长度。很好记。

2.然后是arctan2函数,这个函数接受两个参数,分别表示y数组和x数组,然后返回对应的arctan(y/x)的值,结果是弧度制。

3.接下来用到了绘制散点图的scatter方法,首先当然是传入x和y数组,接着s参数表示scale,即散点的大小;c参数表示color,我给他传的是根据角度划分的一个数组,对应的就是每一个点的颜色(虽然不知道是怎么对应的,不过好像是一个根据数组内其他元素进行的相对的转换,这里不重要了,反正相同的颜色赋一样的值就好了);最后是alpha参数,表示点的透明度。scatter函数的高级用法可以参见官方文档scatter函数或者help文档,最后设置下坐标范围就好了。

效果图

三、等高线图(contour plots)

参考代码

简要分析

1.首先要明确等高线图是一个三维立体图,所以我们要建立一个二元函数f,值由两个参数控制,(注意,这两个参数都应该是矩阵)。

2.然后我们需要用numpy的meshgrid函数生成一个三维网格,即,x轴由第一个参数指定,y轴由第二个参数指定。并返回两个增维后的矩阵,今后就用这两个矩阵来生成图像。

3.接着就用到coutourf函数了,所谓contourf,大概就是contour fill的意思吧,只填充,不描边;这个函数主要是接受三个参数,分别是之前生成的x、y矩阵和函数值;接着是一个整数,大概就是表示等高线的密度了,有默认值;然后就是透明度和配色问题了,cmap的配色方案这里不多研究。

4.随后就是contour函数了,很明显,这个函数是用来描线的。用法可以类似的推出来,不解释了,需要注意的是他返回一个对象,这个对象一般要保留下来个供后续的加工细化。

5.最后就是用clabel函数来在等高线图上表示高度了,传入之前的那个contour对象;然后是inline属性,这个表示是否清除数字下面的那条线,为了美观当然是清除了,而且默认的也是1;再就是指定线的宽度了。

效果图

1 TensorFlow贡献者:1757,贡献:25756,Stars:116765)

“TensorFlow 是一个使用数据流图进行数值计算的开源软件库。图形节点表示数学运算,而图形边缘表示在它们之间流动的多维数据阵列(张量)。这种灵活的体系结构使用户可以将计算部署到桌面、服务器或移动设备中的一个或多个 CPU/GPU,而无需重写代码。 ”

GitHub 地址:

https://github.com/tensorflow/tensorflow

2 pandas(贡献者:1360,贡献:18441,Stars :17388)

“pandas 是一个 Python 包,、供快速,灵活和富有表现力的数据结构,旨在让”关系“或”标记“数据使用既简单又直观。它的目标是成为用 Python 进行实际,真实数据分析的基础高级构建块。”

GitHub 地址:

https://github.com/pandas-dev/pandas

3 scikit-learn(贡献者:1218,贡献者:23509,Stars :32326)

“scikit-learn 是一个基于 NumPy,SciPy 和 matplotlib 的机器学习 Python 模块。它为数据挖掘和数据分析提供了简单而有效的工具。SKLearn 所有人都可用,并可在各种环境中重复使用。

GitHub 地址:

https://github.com/scikit-learn/scikit-learn

4 PyTorch(贡献者:861,贡献:15362,Stars:22763)

“PyTorch 是一个 Python 包,提供两个高级功能:

具有强大的 GPU 加速度的张量计算(如 NumPy)

基于磁带的自动编程系统构建的深度神经网络

你可以重复使用自己喜欢的 Python 软件包,如 NumPy,SciPy 和 Cython,以便在需要时扩展 PyTorch。”

GitHub 地址:

https://github.com/pytorch/pytorch

5 Matplotlib(贡献者:778,贡献:28094,Stars :8362)

“Matplotlib 是一个 Python 2D 绘图库,可以生成各种可用于出版品质的硬拷贝格式和跨平台交互式环境数据。Matplotlib 可用于 Python 脚本,Python 和 IPython shell(例如 MATLAB 或 Mathematica),Web 应用程序服务器和各种图形用户界面工具包。”

GitHub 地址:

https://github.com/matplotlib/matplotlib

6 Keras(贡献者:856,贡者:4936,Stars :36450)

“Keras 是一个高级神经网络 API,用 Python 编写,能够在 TensorFlow,CNTK 或 Theano 之上运行。它旨在实现快速实验,能够以最小的延迟把想法变成结果,这是进行研究的关键。”

GitHub 地址:

https://github.com/keras-team/keras

7 NumPy(贡献者:714,贡献:19399,Stars:9010)

“NumPy 是使用 Python 进行科学计算所需的基础包。它提供了强大的 N 维数组对象,复杂的(广播)功能,集成 C / C ++ 和 Fortran 代码的工具以及有用的线性代数,傅里叶变换和随机数功能。

GitHub 地址:

https://github.com/numpy/numpy

8 SciPy(贡献者:676,贡献:20180,Stars:5188)

“SciPy(发音为”Sigh Pie“)是数学、科学和工程方向的开源软件,包含统计、优化、集成、线性代数、傅立叶变换、信号和图像处理、ODE 求解器等模块。”

GitHub 地址:

https://github.com/scipy/scipy

9 Apache MXNet(贡献者:653,贡献:9060,Stars:15812)

“Apache MXNet(孵化)是一个深度学习框架,旨在提高效率和灵活性,让你可以混合符号和命令式编程,以最大限度地提高效率和生产力。 MXNet 的核心是一个动态依赖调度程序,可以动态地自动并行化符号和命令操作。”

GitHub 地址:

https://github.com/apache/incubator-mxnet

10 Theano(贡献者:333,贡献:28060,Stars :8614)

“Theano 是一个 Python 库,让你可以有效地定义、优化和评估涉及多维数组的数学表达式。它可以使用 GPU 并实现有效的符号区分。”

GitHub 地址:

https://github.com/Theano/Theano

11 Bokeh(贡献者:334,贡献:17395,Stars :8649)

“Bokeh 是一个用于 Python 的交互式可视化库,可以在现代 Web 浏览器中实现美观且有意义的数据视觉呈现。使用 Bokeh,你可以快速轻松地创建交互式图表、仪表板和数据应用程序。”

GitHub 地址:

https://github.com/bokeh/bokeh

12 XGBoost(贡献者:335,贡献:3557,Stars:14389)

“XGBoost 是一个优化的分布式梯度增强库,旨在变得高效、强大、灵活和便携。它在 Gradient Boosting 框架下实现机器学习算法。XGBoost 提供了梯度提升决策树(也称为 GBDT,GBM),可以快速准确地解决许多数据科学问题,可以在主要的分布式环境(Hadoop,SGE,MPI)上运行相同的代码,并可以解决数十亿个示例之外的问题。”

GitHub 地址:

https://github.com/dmlc/xgboost

13 Gensim(贡献者:301,贡献:3687,Stars :8295)

“Gensim 是一个用于主题建模、文档索引和大型语料库相似性检索的 Python 库,目标受众是自然语言处理(NLP)和信息检索(IR)社区。”

GitHub 地址:

https://github.com/RaRe-Technologies/gensim

14 Scrapy(贡献者:297,贡献:6808,Stars :30507)

“Scrapy 是一种快速的高级 Web 爬行和 Web 抓取框架,用于抓取网站并从其页面中提取结构化数据。它可用于从数据挖掘到监控和自动化测试的各种用途。”

GitHub 地址:

https://github.com/scrapy/scrapy

15 Caffe(贡献者:270,贡献:4152,Stars :26531)

“Caffe 是一个以表达、速度和模块化为基础的深度学习框架,由伯克利人工智能研究(BAIR)/ 伯克利视觉与学习中心(BVLC)和社区贡献者开发。”

GitHub 地址:

https://github.com/BVLC/caffe

以上就是2018年最受欢迎的15个库了,不知有没有你的菜喔!希望本文对所列出的库对你有所帮助!