这篇文章主要介绍如何使用Python中yLab绘制折线图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
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.arange0, 1, 0.05) y = [i*i for i in np.arange0, 1, 0.05)] pylab.plotx, y) pylab.show)
运行生成的图片为:
规定两个序列,只需要两个序列的长度相等,就可以以其中一个序列为横坐标,零一个序列为纵坐标,进行绘制。
但是也看得出来,这样的图片是比较寒碜的,简单朴素。我们可以对线条进行一些修饰,比如线型、颜色、点型等等。只需要在plot函数中添加一个参数即可。这个参数用法比较灵活,特可以从下表的值中进行组合选择:
| 颜色 | 线型 | 点型 |
|---|---|---|
| ‘b' 蓝色) | ‘-' 实线) | ‘,' 像素) |
| ‘g' 绿色) | ‘–' 虚线) | ‘o' 圆形) |
| ‘r' 红色) | ‘-.' 虚点线) | ‘^' 上三角) |
| ‘y' 黄色) | ‘:' 点线) | ‘s' 方形) |
| ‘k' 黑色) | ‘.' 点) | ‘+' 加号) |
| ‘w' 蓝色) | … | ‘x' 叉形) |
| … | … |
例如:
import pylab import numpy as np if __name__ == "__main__": x = np.arange0, 1, 0.05) y = [i*i for i in np.arange0, 1, 0.05)] pylab.plotx, y, "b-.+") pylab.show)
运行生成的图片为:
如果,还想增加图例,x轴、y轴的含义和刻度,标题的信息,也可以通过添加一些函数来进行。
例如:
# -*- coding:UTF-8 -*- import pylab import numpy as np if __name__ == "__main__": x = np.arange0, 1, 0.05) y = [i*i for i in np.arange0, 1, 0.05)] pylab.plotx, y, "b-.+", label='line') pylab.xlabel'x') # x、y轴的介绍 pylab.ylabel'y') pylab.xlim[0, 1]) # x、y轴的长度区间 pylab.ylim[0, 1]) pylab.xticksnp.arange0, 1, 0.05), fontsize=8) # x、y轴的刻度 pylab.yticksnp.arange0, 1, 0.05), fontsize=8) pylab.title'x-y') # x、y的标题 pylab.legendloc=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.arange0, 1, 0.05) y1 = [i*i for i in np.arange0, 1, 0.05)] y2 = [i+i for i in np.arange0, 1, 0.05)] pylab.plotx, y1, "b-.+", label='line1') pylab.plotx, y2, "r-.+", label='line2') pylab.xlabel'x') pylab.ylabel'y') pylab.xlim[0, 1]) pylab.ylim[0, 1]) pylab.xticksnp.arange0, 1, 0.05), fontsize=8) pylab.yticksnp.arange0, 1, 0.05), fontsize=8) pylab.title'x-y') pylab.legendloc=3, borderaxespad=0., bbox_to_anchor=0, 0)) pylab.show)
多折线不同图
将多条折线绘制到图片上的不同子图上,这就需要通过subplot进行区域分割和指定。
subplotnumRows, numCols, plotNum)
该函数会将这个图片分为numRows行、nulCols列,然后按照从左到右、从上到下的顺序进行编号,最左上的编号为1。plotNum参数指定子图的所在区域。
例如:
# -*- coding:UTF-8 -*- import pylab import numpy as np if __name__ == "__main__": x = np.arange0, 1, 0.05) y1 = [i*i for i in np.arange0, 1, 0.05)] y2 = [i+i for i in np.arange0, 1, 0.05)] pylab.subplot1, 2, 1) pylab.plotx, y1, "b-.+", label='line1') pylab.xlabel'x') pylab.ylabel'y1') pylab.xlim[0, 1]) pylab.ylim[0, 1]) pylab.xticksnp.arange0, 1, 0.05), fontsize=8) pylab.yticksnp.arange0, 1, 0.05), fontsize=8) pylab.title'x-y1') pylab.legendloc=3, borderaxespad=0., bbox_to_anchor=0, 0)) pylab.subplot1, 2, 2) pylab.plotx, y2, "r-.+", label='line2') pylab.xlabel'x') pylab.ylabel'y2') pylab.xlim[0, 1]) pylab.ylim[0, 1]) pylab.xticksnp.arange0, 1, 0.05), fontsize=8) pylab.yticksnp.arange0, 1, 0.05), fontsize=8) pylab.title'x-y2') pylab.legendloc=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.arange0, 1, 0.05) y1 = [i*i for i in np.arange0, 1, 0.05)] y2 = [i+i for i in np.arange0, 1, 0.05)] pylab.subplot2, 2, 1) pylab.plotx, y1, "b-.+", label='line1') pylab.xlabel'x') pylab.ylabel'y1') pylab.xlim[0, 1]) pylab.ylim[0, 1]) pylab.xticksnp.arange0, 1, 0.05), fontsize=8) pylab.yticksnp.arange0, 1, 0.05), fontsize=8) pylab.title'x-y1') pylab.legendloc=3, borderaxespad=0., bbox_to_anchor=0, 0)) pylab.subplot2, 2, 2) pylab.plotx, y2, "r-.+", label='line2') pylab.xlabel'x') pylab.ylabel'y2') pylab.xlim[0, 1]) pylab.ylim[0, 1]) pylab.xticksnp.arange0, 1, 0.05), fontsize=8) pylab.yticksnp.arange0, 1, 0.05), fontsize=8) pylab.title'x-y2') pylab.legendloc=3, borderaxespad=0., bbox_to_anchor=0, 0)) pylab.subplot2, 1, 2) pylab.plotx, y1, "b-.+", label='line1') pylab.plotx, y2, "r-.+", label='line2') pylab.xlabel'x') pylab.ylabel'y') pylab.xlim[0, 1]) pylab.ylim[0, 1]) pylab.xticksnp.arange0, 1, 0.05), fontsize=8) pylab.yticksnp.arange0, 1, 0.05), fontsize=8) pylab.title'x-y') pylab.legendloc=3, borderaxespad=0., bbox_to_anchor=0, 0)) pylab.show)
运行生成的图片为:
其他函数
除了上述函数之外,还有一些其他的常用函数。
pylab.grid) # 网格绘制 pylab.savefig图片存储路径, dpi=200) # 保存为图片
掌握了这些基本的折现图的绘制函数,相信一般的折线图都可以轻松掌握。
python可以做什么
Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,Web开发等。





