首页 > 代码库 > Matplotlib:plotting(译)
Matplotlib:plotting(译)
感谢
非常感谢Bill Wing和Christoph Deil的审阅和更正。
作者:Nicolas Rougier, Mike Müller, Gaël Varoquaux
本章内容:
- 介绍
- 简单绘图
- 图形,子图,轴线和刻度
- 其他类型的图形:示例和练习
- 教程之外的内容
- 快速参考
4.1 介绍
Matplotlib可能是二维图形中最常用的Python包。它提供了一个非常快的可视化Pyhton数据的方法和许多可供发布的格式化图形。我们要以交互方式探索Matplotlib大多数常见情况。
4.1.1 IPython和Matplotlib模式
Ipython是一个增强的交互式Python Shell。它有许多有趣的功能,包括命名输入和输出、访问Shell命令、改进调试和更多内容。它是Pyhton中科学计算工作流的核心,与Matplotlib结合一起使用。
关于Matlab/Mathematica类似功能的交互式Matplotlib会话,我们使用IPython和它的特殊Matplotlib模式,使能够非阻塞绘图。
Ipython console 当使用IPython控制台时,我们以命令行参数--matplotlib启动它(-pylab命令被用在非常老的版本中)
IPthon notebook 在IPthon notebook中,我们在notebook的起始处插入以下魔法函数:%matplotlib inline
4.1.2 pyplot
pyplot为matplotlib面向对象的绘图库提供了一个程序接口。它是接近于Matlab的建模工具。因此,plot中的大多数绘图命令都具有类似的Matlab模拟参数。重要的命令用交互示例解释。
from matplotlib import pyplot as plt
4.2 简单绘图
在本节中,我们要在同一个图上绘制余弦和正弦函数,我们将从默认设置开始,逐步充实图形,使其变得更好。
第一步:获取正弦和余弦函数的数据
import numpy as npX = np.linspace(-np.pi, np.pi, 256, endpoint=True)C, S = np.cos(X), np.sin(X)
X现在是一个numpy数组,有256个值,范围从-π到+π(包括),C是余弦(256个值),S是正弦(256个值)。
要运行该示例,你可以在IPython交互式会话中键入它:
$ ipython --pylab
这使我们来到IPython命令提示符:
IPython 0.13 -- An enhanced Interactive Python.? -> Introduction to IPython‘s features.%magic -> Information about IPython‘s ‘magic‘ % functions.help -> Python‘s own help system.object? -> Details about ‘object‘. ?object also works, ?? prints more.Welcome to pylab, a matplotlib-based Python environment.For more information, type ‘help(pylab)‘.
你也可以下载每个例子,使用常规Python命令运行它,但是你会失去交互数据操作。
$ python exercice_1.py
你可以通过点击相应的图形来获取每个步骤的源。
4.2.1 使用默认设置绘图
Documentation
- plot tutorial
- plot() command
import numpy as npimport matplotlib.pyplot as pltX = np.linspace(-np.pi, np.pi, 256, endpoint=True)C, S = np.cos(X), np.sin(X)plt.plot(X, C)plt.plot(X, S)plt.show()
4.2.2 实例化默认值
Documentation
- Customizing matplotlib
import numpy as npimport matplotlib.pyplot as plt# Create a figure of size 8x6 inches, 80 dots per inchplt.figure(figsize=(8, 6), dpi=80)# Create a new subplot from a grid of 1x1plt.subplot(1, 1, 1)X = np.linspace(-np.pi, np.pi, 256, endpoint=True)C, S = np.cos(X), np.sin(X)# Plot cosine with a blue continuous line of width 1 (pixels)plt.plot(X, C, color="blue", linewidth=1.0, linestyle="-")# Plot sine with a green continuous line of width 1 (pixels)plt.plot(X, S, color="green", linewidth=1.0, linestyle="-")# Set x limitsplt.xlim(-4.0, 4.0)# Set x ticksplt.xticks(np.linspace(-4, 4, 9, endpoint=True))# Set y limitsplt.ylim(-1.0, 1.0)
Matplotlib:plotting(译)