如何绘制用def定义的函数?

Akm*_*hov 10 plot matplotlib python-2.7

我有一个功能

np.sin(x / 2.) * np.exp(x / 4.) + 6. * np.exp(-x / 4.)
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码绘制它:

x = np.arange(-5, 15, 2)
y = np.sin(x / 2.) * np.exp(x / 4.) + 6. * np.exp(-x / 4.)
plt.plot(x, y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

但如果我定义函数绘图不起作用:

rr = np.arange(-5, 15, 2)

def y(o): 
    return np.sin(o / 2.) * np.exp(o / 4.) + 6. * np.exp(-o / 4.)

def h(b):
    return int(y(b))

plt.plot(rr, h)
plt.show()
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,如何更改代码以绘制函数?

Hun*_*Hun 8

试试这个:

import numpy as np
import matplotlib.pyplot as plt

rr = np.arange(-5, 15, 2)

def y(o): 
    return np.sin(o / 2.) * np.exp(o / 4.) + 6. * np.exp(-o / 4.)

plt.plot(rr, y(rr).astype(np.int))
plt.show()
Run Code Online (Sandbox Code Playgroud)