码迷,mamicode.com
首页 > 编程语言 > 详细

小白开始学Python最著名的绘图库

时间:2020-11-27 11:11:57      阅读:8      评论:0      收藏:0      [点我收藏+]

标签:pyplot   linear   charm   str   序列   交互式   坐标   也有   绘图   

数据分析里面可视化是重要的环节,辛苦把数据采集,然后经历了很多工序的清洗之后,最后要展现给用户,最好的方法就是数据可视化。数据可视化是一门艺术也是科学,可视化的神兵利器很多,今天介绍大名鼎鼎的Matplotlib,当然还有懒人专用的pandas画图,只要几行搞定,还有R语言的ggplot2最人性的库,以及酷炫的JS库D3. 今天就先了解一下Python中最著名的绘图库Matplotlib,看看到底如何做出漂亮的图

有的小伙伴不解,为啥叫它鼻祖的,因为其他的可视化的数据包都是从它演变而来,二次封装的。Matplotlib本身是免费而且开源的,貌看一下感觉非常复杂,API超级多。小白想学它,必须循环渐进,不然很容易迷路,不懂章法学到后面会吐,我们先用几个基本的概念慢慢入手吧

                                     1

                           基础知识普及

要点:
Figure
Axes
Axis
Artist
技术图片

本图片来自Matplotlib官网

1.Figure


Figure就是上面图上的红色框,其实就是图像,在matplotlib中整个图像就是一个figure,在figure对象中可以包含一个或者多个Axes对象。而每个Axes对象又拥有自己坐标系统的绘图区域

技术图片

  • 首先要import matplotlib这个库,没有的同学可以安装一下,或者直接用Anaconda这个非常方便的工具(这个工具是个Pycharm齐名的,特别是数据分析的时候)
  • 然后获得一个figure对象fig
  • 然后我们要画一个二行一列的坐标图,可以用subplots直接生成一个2*1的2个子图,2就是表示这个图像里面有2个坐标图,1表示是1列

技术图片

比如想生成多个子图怎么办,也很简单:

subplot(numRows, numCols, plotNum),subplot把整个图像分成行列式排列.
从左到右排列,比如我们创建一个2*2的多子图

技术图片
技术图片
是不是感觉很漂亮,不急后面还有更多漂亮的图呢

2.Axes


Axes其实就是子图,就是一个有x坐标轴和y坐标轴的坐标轴图.一个figure可以包含多个子图,通过axes对象可以多轴图里面进行各种各样绘图的操作

技术图片

  • 先声明一个figure
  • 然后用add_subplot增加一个子图ax1,1行1列的图
  • 构造一个x,y的坐标,我们用最简单的x=[1,2,3,4],y=[2,3,4,5]
  • 下面是最重要的plot函数,这个函数非常非常重要,参数很多
    第一个和第二个参数是对应的x,y轴上面的坐标数(1,2),(2,3)..
    第三个数字是坐标图图上的曲线类型,这里我们选圆心‘o‘,还有折线
    图‘--‘, 小三角‘v‘,点线‘:‘,五角星‘*‘等等一共有几十种选择
    后面的参数都是关键字参数,比如我们这本设定了颜色是‘r‘红色
    color=‘r‘,还可以设置线条的宽度linewidth=2
  • 最后设置一下ax1子图的标题

技术图片

3.Axis


axis其实很好理解,就是每个子图上x轴和y轴上的线,刻度标记,以及刻度标记的注释,详细见下图
技术图片

Title为标题(我们写成Simple figure)
Axis为坐标轴,Label为坐标轴标注,Tick为刻度线,Tick Label为刻度注释

4.Artist


上面所有的图里面的元素其实都是artist ,总结一下:一个图像可以包含一个多个子图axes,而每个子图都是一个轴图,包含了xaxis,yaxis,title和data.Data其实就是我们绘图的关键数据.

                                     2

                            两个重要的库

matplotlib里面有两个非常重要的库,一个是pyplot ,另一个 pylab,详细如下:

  • pyplot模块:绘图API,提供了和matlab类似的绘图API,方便用户快速绘制2D图表
  • pylab模块:集成库,主要是包含了Numpy和pyplot中的一些常用函数,方便用户快速进行计算和绘图,可以用于IPython中的快速交互式使用

下面举两个非常简单的例子
1.用pyplot画一个漂亮的曲线图

技术图片

  • 首先用numpy生成一个0,3的序列,步长是0.1
  • 然后plt画3个数据图,第一个是线性,第二个是平方指数,第三个是立方指数
  • 设置x和y轴的标签
  • plt.legend是设置图例,上面的3个label设置的‘linear‘,‘quadratic‘,‘cubic‘就会显示在图例里面

技术图片

2.pylab
pylab一般用在 IPython用于交互式的绘图,下面是一个简单的例子
用法和pyplot模块非常像,也有plot库.

技术图片
技术图片

结论:


好,数据可视化之matplotlib上手篇,就讲道这里,是不是觉得还蛮简单的,其实matplotlib的功能很强大。只要理清楚它的结构,循序渐进的学,你就会发现matplotlib可以画出很多美丽的,直观的2D图片.当然后面有更牛的js库D3,二者各有千秋.接下来会介绍matplotlib里面各种花色图形,敬请期待~~

小白开始学Python最著名的绘图库

标签:pyplot   linear   charm   str   序列   交互式   坐标   也有   绘图   

原文地址:https://blog.51cto.com/15009341/2553552

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!