Matplotlib学习笔记——常用技巧

Matplotlib常用技巧

matplotlib最重要的特性就是具有良好的操作系统兼容性和图形显示底层接口兼容性。Matplotlib支持几十种图形显示接口与输出格式,这种跨平台、面面俱到的特定已经成为Matplotlib最强大的功能之一。

在IDLE中画图

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as mp
import pandas as pd
#设置画图风格为经典
plt.style.use('classic')

x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x))
plt.show

在Ipython shell中画图

使用ipython的魔术方法%matplotlib后,此后的任何plt命令都会自动打开一个图形窗口,增加新的命令,图形就会更新。有些变化(比如改变已经花好的线条属性)不会自动变化,可以使用plt.draw()强制更新。在Ipython shell中启动matplotlib模式后,就不需要plt.show()了。

%matplotlib

在Ipython Notebook中画图

Ipython Notebook是一款基于浏览器的交互式数据分析工具,可以将描述性文字、代码、图形、Html元素以及更多的媒体形式组件结合起来,集成到单个可执行的Notebook文档中。

#notebook中,可以将图形直接嵌在notebook页面中
#在notebook中启动静态图形
%matplotlib inline
fig = plt.figure()
plt.plot(x, np.sin(x), '-')
plt.plot(x, np.cos(x), '+')

将图形保存为文件

Matplotlib的一个优点是能够将图形保存为各种不同的数据格式。

#将图片保存为png格式
fig.savefig('my_figure.png')

#为了确保文件中是否保存了我们需要的内容,可以用Ipython的Image对象来显示文件内容
from IPython.display import Image
Image('my_figure.png')

MATLAB风格接口

Matplotlib最初作为Matlab用户的python替代品,许多语法和Matlab类似。Matlab风格的工具位于pyplot接口中。这种接口最重要的特性是有状态的,他会持续跟踪“当前的”图形和坐标轴,所有plt命令都可以应用。但最大的问题是不能切换绘图的子图。这个问题在面向对象的接口中得到解决。

#创建图形
plt.figure()
#创建两个子图的第一个,设置坐标轴
plt.subplot(2,1,1)      #(行、列、子图编号)
plt.plot(x, np.sin(x))

#创建两个子图中的第二个,设置坐标轴
plt.subplot(2,1,2)
plt.plot(x, np.cos(x))

面向对象接口

面向对象接口可以适应更加复杂的场景,尤其是画图函数不再受当前“活动”图形或坐标轴的限制,而变成显式的Figure和Axes的方法。

#先创建图形网格,ax是一个包含两个Axes对象的数组
fig, ax = plt.subplot(2)
#在每一个对象上调用plot方法
ax[0].plot(x, np.sin(x))
ax[1].plot(x, np.cos(x))

猜你喜欢

转载自blog.csdn.net/jasonzhoujx/article/details/81736165