首页 > 代码库 > 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 IPythons features.%magic -> Information about IPythons magic % functions.help -> Pythons 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(译)