Matplotlib教程

Matplotlib面向对象接口

Matplotlib面向对象接口详细操作教程
虽然使用matplotlib.pyplot模块很容易快速生成绘图,但建议使用面向对象的方法,因为它可以更好地控制和自定义绘图。matplotlib.axes.Axes类中也提供了大多数函数。
使用更正式的面向对象方法背后的主要思想是创建图形对象,然后只调用该对象的方法或属性。这种方法有助于更好地处理其上有多个绘图的画布。
在面向对象的界面中,Pyplot仅用于一些功能,如图形创建,用户显式创建和跟踪图形和轴对象。在此级别,用户使用Pyplot创建图形,通过这些图形,可以创建一个或多个轴对象。然后,这些轴对象用于大多数绘图操作。
首先,创建一个提供空画布的图形实例。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
fig = plt.figure()
将轴添加到图形中。add_axes()方法需要一个4个元素的列表对象,对应于图形的左侧,底部,宽度和高度。每个数字必须介于0和1之间 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
ax=fig.add_axes([0,0,1,1])
设置x和y轴的标签以及标题 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
调用axes对象的plot()方法。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
ax.plot(x,y)
如果使用的是 Jupyter notebook,则需要加入%matplotlib inline指令; pyplot模块的show()函数显示图形。
阅读并执行以下代码 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
#! /usr/bin/env python
#coding=utf-8
from matplotlib import pyplot as plt
import numpy as np
import math
# 显示中文设置...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
%matplotlib inline
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("正弦波")
ax.set_xlabel('角度')
ax.set_ylabel('正弦')
plt.show()
上面的代码行生成以下输出 -
执行代码结果
Jupyter notebook中运行时相同的代码 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
#! /usr/bin/env python
#coding=utf-8
from matplotlib import pyplot as plt
import numpy as np
import math
# 显示中文设置...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
%matplotlib inline
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("正弦波")
ax.set_xlabel('角度')
ax.set_ylabel('正弦')
plt.show()
显示输出如下所示 -
执行代码结果
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4