使用matplotlib绘制导数图像

机器学习中导数用的非常多,本文使用matlotlib绘制函数的导数图像,代码如下:

# -*- coding: utf-8 -*-
import matplotlib
import numpy as np
import matplotlib.pyplot as plt

# 确定坐标轴
plt.xlim((-3, 3))
plt.ylim((-70, 150))

# 确定函数的x,y值
x1 = np.linspace(-3,3.5,100)
def y1(x1):
    y1 = 3*x1**3 + 2*x1**2 + x1 + 4
    return y1

# 一阶导数的x,y值
x2 = x1
def y2(x2):
    y2 = 9*x2**2 + 4*x2 + x2
    return y2

# 确定二阶导数的x,y值
x3 = x1
def y3(x3):
    y3 = 18*x3 + 4
    return y3

# plot为绘制图像的函数,label为标记
plt.plot(x1, y1(x1), 'r-',linewidth=1,label='f(x)')
plt.plot(x2, y2(x2), 'g--',linewidth=1,label="f '(x)")
plt.plot(x3, y3(x3), 'b-',linewidth=0.8,label="f ' '(x)")

# 在图上添加文字注释
plt.text(-2.8,y1(3),'f(x)=3x**3 + 2x**2 + x + 4',size=13)

# 将标记绘制图例
plt.legend(['f(x)',"f '(x)","f ' '(x)"], loc = 'lower right')    
plt.show()

plt.close()

运行结果如下,可以通过图像看到导数的性质:如一阶导数为0,此点为极值等。

原文地址:https://www.cnblogs.com/thsk/p/8330050.html