用Python的Matplotlib包绘图基础
很多新手科技区小伙伴提出疑问:如何让画图如教科书般简洁优雅?
俗话说的好,工欲善其事,必先利其器。要想画好论文插图,首先要选择一款合适的作图软件。对于有一定Python基础的小伙伴,熟练地掌握Matplotlib使未来的可视化工作得心应手。
我将用一系列文章由浅入深、系统全面地总结Matplotlib知识点。这些文章首发于,公众号交通科研Lab【简洁优雅的Matplotlib数据可视化】栏目噢!
导入Matplotlib
作为python常用的程序包之一,使用之前首先要导入Matplotlib,通常导入它的简写形式mpl:
import matplotlib as mpl
import matplotlib.pyplot as plt
其中plt是最常用的接口,在后边将会用到。
设置绘图样式
用plt.style选择图形的绘图风格。选择经典(classic)风格,画出的图片就是经典的Matplotlib风格。
plt.style.use('classic')
此外,常用的风格还有FiveThirtyEight(fivethirtyeight)、ggplot、bmh、黑色背景(dark_background)、seaborn等,有些风格绘制的图片非常漂亮。这些风格为画图提供了便利,感兴趣的小伙伴可自行深入探索。
显示图形
如果是在脚本文件中使用Matplotlib,那么显示图形时必须使用plt.show()。
plt.show()
plt.show()的原理是启动一个事件循环,找到当前可用的所有图形对象,然后打开一个或多个交互式窗口显示图形。
**注意事项:**一个Python会话中只能使用一次plt.show(),因此通常将它放在脚本最后。多个plt.show()命令会导致程序显示异常。
创建图形和坐标轴
绘制Matplotlib图形时,都需要创建一个图形fig和一个坐标轴ax。创建图形与坐标轴最简单的方法如下:
# 创建图形
fig = plt.figure()
# 创建坐标轴
ax = plt.axes()
用’seaborn-whitegrid’风格创建图片和坐标轴如下图所示。
注:该风格会自动为图形和坐标轴添加网格线。
设置图形标签
用plt.title()设置图形标题,用plt.xlabel()或plt.ylabel()设置x或y轴的标题。
# 设置图形标签
plt.title(‘Title’)
plt.xlabel('X')
plt.ylabel('Y')
设置图例
设置图例最简单的方法是用plt.legend()。
# 图例
plt.legend()
将图形保存为文件
Matplotlib可以将图形保存为各种不同的数据格式,用savefig()命令将图形保存为文件。例如,如果要将图形保存为PNG格式,可以用这行代码:
fig.savefig('my_figure.png')
注:当使用savefig()命令时,则可以不需要plt.show()等显示图形的命令。
在savefig中,保存的图片文件格式就是文件的扩展名。可以通过canvas对象的方法查看系统支持的文件格式:
In: fig.canvas.get_supported_filetypes()
Out: {'ps': 'Postscript',
'eps': 'Encapsulated Postscript',
'pdf': 'Portable Document Format',
'pgf': 'PGF code for LaTeX',
'png': 'Portable Network Graphics',
'raw': 'Raw RGBA bitmap',
'rgba': 'Raw RGBA bitmap',
'svg': 'Scalable Vector Graphics',
'svgz': 'Scalable Vector Graphics'}
注:’In:’后为在交互式窗口输入的内容,’Out:’后为交互式窗口输出的内容。
上一篇: matplotlib设置样式
推荐阅读
-
python基础(13):函数名的使用、第一类对象、闭包、迭代器
-
完美解决Python matplotlib绘图时汉字显示不正常的问题
-
python的绘图工具matplotlib使用实例
-
python绘图库Matplotlib的安装
-
通过python的matplotlib包将Tensorflow数据进行可视化的方法
-
Python环境下安装使用异步任务队列包Celery的基础教程
-
完美解决Python matplotlib绘图时汉字显示不正常的问题
-
turtle的基础使用之python turtle递归绘图
-
turtle的基础使用之python turtle递归绘图
-
用Python进行基础的函数式编程的教程