Python的可视化工具有很多,数不胜数,各有优劣。本文就对其中的pylab进行介绍。之所以介绍这一款,是因为它和Matlab的强烈相似度,如果你使用过Matlab,那么相信pylab你也会很快上手。

简单的plot函数

pylab绘图,最基本的函数就是plot函数,当然如果想要将图片显示出来,需要额外添加一个show函数。

在python的绘图中,numpy是一个非常常用的工具,不太熟悉的可以参考博主的另一篇博文:【Python】Python之Numpy的超实用基础详细教程。

例如:

import pylab

import numpy as np

if __name__ == "__main__":

x = np.arange(0, 1, 0.05)

y = [i*i for i in np.arange(0, 1, 0.05)]

pylab.plot(x, y)

pylab.show()

运行生成的图片为:

规定两个序列,只需要两个序列的长度相等,就可以以其中一个序列为横坐标,零一个序列为纵坐标,进行绘制。

但是也看得出来,这样的图片是比较寒碜的,简单朴素。我们可以对线条进行一些修饰,比如线型、颜色、点型等等。只需要在plot函数中添加一个参数即可。这个参数用法比较灵活,特可以从下表的值中进行组合选择:

颜色

线型

点型

"b' (蓝色)

"-' (实线)

",' (像素)

"g' (绿色)

"–' (虚线)

"o' (圆形)

"r' (红色)

"-.' (虚点线)

"^' (上三角)

"y' (黄色)

":' (点线)

"s' (方形)

"k' (黑色)

".' (点)

"+' (加号)

"w' (蓝色)

"x' (叉形)

例如:

import pylab

import numpy as np

if __name__ == "__main__":

x = np.arange(0, 1, 0.05)

y = [i*i for i in np.arange(0, 1, 0.05)]

pylab.plot(x, y, "b-.+")

pylab.show()

运行生成的图片为:

如果,还想增加图例,x轴、y轴的含义和刻度,标题的信息,也可以通过添加一些函数来进行。

例如:

# -*- coding:UTF-8 -*-

import pylab

import numpy as np

if __name__ == "__main__":

x = np.arange(0, 1, 0.05)

y = [i*i for i in np.arange(0, 1, 0.05)]

pylab.plot(x, y, "b-.+", label='line')

pylab.xlabel('x') # x、y轴的介绍

pylab.ylabel('y')

pylab.xlim([0, 1]) # x、y轴的长度区间

pylab.ylim([0, 1])

pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) # x、y轴的刻度

pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.title('x-y') # x、y的标题

pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) # 图例的位置

pylab.show()

运行生成的图片为:

是不是瞬间就感觉丰富了许多!

多折线绘制

当然,在很多时刻需要绘制多条折线。很明显,可以选择将多条直线绘制到同一张图片上,也可以选择在图片上绘制不同的子图。

多折线同图

将多条折线绘制到同一张图片上,这非常简单,直接再plot一条直线就可以了。

例如:

# -*- coding:UTF-8 -*-

import pylab

import numpy as np

if __name__ == "__main__":

x = np.arange(0, 1, 0.05)

y1 = [i*i for i in np.arange(0, 1, 0.05)]

y2 = [i+i for i in np.arange(0, 1, 0.05)]

pylab.plot(x, y1, "b-.+", label='line1')

pylab.plot(x, y2, "r-.+", label='line2')

pylab.xlabel('x')

pylab.ylabel('y')

pylab.xlim([0, 1])

pylab.ylim([0, 1])

pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.title('x-y')

pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

pylab.show()

多折线不同图

将多条折线绘制到图片上的不同子图上,这就需要通过subplot进行区域分割和指定。

subplot(numRows, numCols, plotNum)

该函数会将这个图片分为numRows行、nulCols列,然后按照从左到右、从上到下的顺序进行编号,最左上的编号为1。plotNum参数指定子图的所在区域。

例如:

# -*- coding:UTF-8 -*-

import pylab

import numpy as np

if __name__ == "__main__":

x = np.arange(0, 1, 0.05)

y1 = [i*i for i in np.arange(0, 1, 0.05)]

y2 = [i+i for i in np.arange(0, 1, 0.05)]

pylab.subplot(1, 2, 1)

pylab.plot(x, y1, "b-.+", label='line1')

pylab.xlabel('x')

pylab.ylabel('y1')

pylab.xlim([0, 1])

pylab.ylim([0, 1])

pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.title('x-y1')

pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

pylab.subplot(1, 2, 2)

pylab.plot(x, y2, "r-.+", label='line2')

pylab.xlabel('x')

pylab.ylabel('y2')

pylab.xlim([0, 1])

pylab.ylim([0, 1])

pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.title('x-y2')

pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

pylab.show()

运行生成的图片为:

这是比较规整的例子,如果是不规整的呢?例如,第一行两张图,第二行一张图。这就要稍微变通一下了。

第一行其实是按照2*2分法的第一个和第二个,第二行其实是按照2*1分法的第二行。这样思考就会迎刃而解了。

# -*- coding:UTF-8 -*-

import pylab

import numpy as np

if __name__ == "__main__":

x = np.arange(0, 1, 0.05)

y1 = [i*i for i in np.arange(0, 1, 0.05)]

y2 = [i+i for i in np.arange(0, 1, 0.05)]

pylab.subplot(2, 2, 1)

pylab.plot(x, y1, "b-.+", label='line1')

pylab.xlabel('x')

pylab.ylabel('y1')

pylab.xlim([0, 1])

pylab.ylim([0, 1])

pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.title('x-y1')

pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

pylab.subplot(2, 2, 2)

pylab.plot(x, y2, "r-.+", label='line2')

pylab.xlabel('x')

pylab.ylabel('y2')

pylab.xlim([0, 1])

pylab.ylim([0, 1])

pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.title('x-y2')

pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

pylab.subplot(2, 1, 2)

pylab.plot(x, y1, "b-.+", label='line1')

pylab.plot(x, y2, "r-.+", label='line2')

pylab.xlabel('x')

pylab.ylabel('y')

pylab.xlim([0, 1])

pylab.ylim([0, 1])

pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)

pylab.title('x-y')

pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

pylab.show()

运行生成的图片为:

其他函数

除了上述函数之外,还有一些其他的常用函数。

pylab.grid() # 网格绘制

pylab.savefig(图片存储路径, dpi=200) # 保存为图片

掌握了这些基本的折现图的绘制函数,相信一般的折线图都可以轻松掌握。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: 手把手教你Python yLab的绘制折线图的画法

本文地址: http://www.cppcns.com/jiaoben/python/281626.html

python画折线图-手把手教你Python yLab的绘制折线图的画法相关推荐

  1. python批量评论_手把手教你 Python挖掘用户评论典型意见并自动生产报告

    原标题:手把手教你 Python挖掘用户评论典型意见并自动生产报告 用户体验的工作可以说是用户需求和用户认知的分析.而消费者的声音是其中很重要的一环,它包含了用户对产品的评论,不管是好的坏的,都将对我 ...

  2. 用python画皇冠_手把手教你用 Python 绘制酷炫的桑基图!

    原标题:手把手教你用 Python 绘制酷炫的桑基图! 作者 | 周志鹏 责编 | 郭 芮 最近,不止一次收到小伙伴的截图追问: "这个图叫什么???" "这个图真好看! ...

  3. python画龙猫_手把手教你画龙猫,详细到每一条线!

    宫崎骏老爷爷的画功简直就是美术生心中的神仙呐 今天小胖要教大家画宫崎骏笔下的龙猫! 手把手教你画龙猫,详细到每一条线! 快学起来吧~ 第一步: 在纸张的左上角画一把小伞 手把手教你画龙猫,详细到每一条 ...

  4. ad16怎么画弧线_手把手教你用GraphPad Prism绘制生存曲线

    疾病预后研究中,生存曲线是必不可少的素材之一,其重要性不言而喻.那么,当获取到生存数据后应该如何绘制一幅对得起读者和编辑的生存曲线呢? 在目前的科学绘图界,呈现出Sigmaplot,GraphPad ...

  5. Python学习教程:手把手教你搭建自己的量化分析数据库

    Python学习教程:手把手教你搭建自己的量化分析数据库 引言: 数据是金融量化分析的重要基础,包括股票历史交易数据.上市公司基本面数据.宏观和行业数据等.随着信息流量的日益膨胀,学会获取.查询和加工 ...

  6. python流程控制-实战案例手把手教你Python流程控制技巧

    原标题:实战案例手把手教你Python流程控制技巧 作者:PianoOrRock 来源: http://blog.csdn.net/pianoorrock/article/details/711315 ...

  7. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 3)

    小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第三讲 这是小白都能看懂的实战教程 手把手教你Python Web全栈开发 的 ...

  8. python爬取资料怎么样_手把手教你Python爬取新房数据

    原标题:手把手教你Python爬取新房数据 项目背景 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. ...

  9. ☀️手把手教你Python+matplotlib模拟锁相放大器的原理以及工作过程☀️《❤️记得收藏❤️》

    ☀️手把手教你Python+matplotlib模拟锁相放大器的原理以及工作过程☀️<❤️记得收藏❤️> 目录

最新文章

  1. 开源!北大研究生把《统计学习方法》书中全部算法都实现了!
  2. MOSS2007最终用户培训资料
  3. 虚拟机共享文件夹引发的一点思考
  4. addr 与 offset 区别
  5. 6.13spring随笔
  6. Linux 查看CPU信息,内存等信息
  7. sklearn学习_01
  8. 7-37 组个最小数 (20分)_波音737高度计上蹊跷的“8英尺”,09年土耳其航空1951号航班空难...
  9. 基于DotNet Core的RPC框架(一) DotBPE.RPC快速开始
  10. centos下升级jdk版本
  11. 企业打造自己的数据中台,需要的是一套硅谷方法论(文末有福利!)
  12. Debian — command not found
  13. 什么是WAF(lua+nginx)
  14. 价值连城 神经网络- 吴恩达Andrew Ng Coursera Neural Networks and Deep Learning
  15. 《复变函数论》试题库及答案
  16. 2018年阿里巴巴重要开源项目汇总(持续更新中)
  17. c语言碰撞算法,c – 任意大小凸多边形之间碰撞检测的算法
  18. 从零基础到web前端工程师(三)
  19. 美图嗅嗅+到意大利的水族馆里吃西餐
  20. SQLServer The datediff function resulted in an overflow

热门文章

  1. 人工智能目标检测模型(四)——ResNet
  2. CUDA中二级指针表示二级数组
  3. 《0元搭建个人博客史上最详细教程》(阿里云学生服务器+宝塔一键部署篇)
  4. opencv 滑动条的创建和使用
  5. 音乐播放插件Aplayer+WebAPI的使用【附下载】
  6. Null + Anything = null, 好奇怪的设定啊
  7. [导入]Nutch 简介 [官方]
  8. HDU2023 求平均成绩【入门】
  9. POJ1212 HDU1650 UVA180 LA5240 Eeny Meeny【约瑟夫环】
  10. 2019四川大学第二届SCUACM新生赛题解