matplotlibmatplotlib入门


备注

概观

matplotlib是Python的绘图库。它提供了面向对象的API,用于将绘图嵌入到应用程序中。它在容量和语法上类似于MATLAB。

它最初由JDHunter编写,并且正在积极开发中。它以BSD样式许可证分发。

版本

支持Python版本备注发布日期
1.3.1 2.6,2.7,3.x 较旧的稳定版本二〇一三年十月一十日
1.4.3 2.6,2.7,3.x 以前的稳定版本 2015年7月14日
1.5.3 2.7,3.x 目前的稳定版本 2016年1月11日
2.X 2.7,3.x 最新开发版 2016年7月25日

自定义matplotlib图

import pylab as plt
import numpy as np

plt.style.use('ggplot')

fig = plt.figure(1)
ax = plt.gca()

# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)

# plot the test data
ax.plot( x, test_f(x) , lw = 2)

# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)

# set axis limits
ax.set_xlim(0,np.pi)

plt.draw()
 

在此处输入图像描述

# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()
 

在此处输入图像描述

命令式与面向对象的语法

Matplotlib支持用于绘图的面向对象和命令式语法。命令式语法有意设计为非常接近Matlab语法。

命令式语法(有时称为“状态机”语法)发出一串命令,所有这些命令都作用于最新的图形或轴(如Matlab)。另一方面,面向对象的语法明确地作用于感兴趣的对象(图形,轴等)。 Python禅宗中的一个关键点是显式优于隐式,因此面向对象的语法更加pythonic。但是,命令式语法对于Matlab的新转换和编写小型“一次性”绘图脚本非常方便。以下是两种不同风格的示例。

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)

# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)

# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)
 

两个例子都产生了相同的图,如下所示。

在此处输入图像描述

安装和设置

有几种方法可以安装matplotlib,其中一些方法取决于您使用的系统。如果幸运的话,您将能够使用包管理器轻松安装matplotlib模块及其依赖项。

视窗

在Windows机器上,您可以尝试使用pip包管理器来安装matplotlib。有关 Windows环境中设置pip的信息,请参见此处

OS X.

建议您使用pip包管理器安装matplotlib。如果您需要在系统上安装一些非Python库(例如libfreetype ),那么请考虑使用自制程序

如果由于某种原因无法使用pip,请尝试从源代码安装。

Linux的

理想情况下,系统包管理器或pip应该用于安装matplotlib,方法是安装python-matplotlib 包或运行pip install matplotlib

如果这不可能(例如,您正在使用的计算机上没有sudo权限),则可以使用--user 选项从安装: python setup.py install --user 。通常,这会将matplotlib安装到~/.local

于Debian / Ubuntu

sudo apt-get install python-matplotlib

Fedora / Red Hat

sudo yum install python-matplotlib

故障排除

有关如何修复损坏的matplotlib的建议,请访问matplotlib网站

二维(2D)阵列

在轴上显示二维(2D)阵列。

import numpy as np
from matplotlib.pyplot import imshow, show, colorbar

image = np.random.rand(4,4)
imshow(image)
colorbar()
show()
 

使用matplotlib显示二维(2D)数组