星星博客 »  > 

使用python画函数图像

目的: 发出 y = x ** 3 / (x * 3 + 1) 的图像

1. 导入matplotlib模块还有numpy模块:

import numpy as np
import matplotlib.pyplot as plt

2. 设置一个x的大致范围, 和y相对应的值域:

x = np.arange(-100, 100, 0.001)
y = x ** 3 / (3 * x + 1)

3. 使用figure创建画布, 把参数传进plot里面:

plt.figure()
plt.plot(x, y, linestyle='--', color='red')

4. 因为这个函数的范围太大, 并且在三分之一处出现断崖分布, 必须得缩小x轴和y轴的范围, 不然画图的误差会相当大:

lt.xlim((-0.6, 0.6))
plt.ylim((-0.6, 0.6))

5. 对图像进行些许的美化:

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

6. 最后要使用show展示出来:

plt.show()

7. 效果如下:

8. 所用代码:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-100, 100, 0.001)
y = x ** 3 / (3 * x + 1)

plt.figure()
plt.plot(x, y, linestyle='--', color='red')
plt.xlim((-0.6, 0.6))
plt.ylim((-0.6, 0.6))
plt.xlabel('x')
plt.ylabel('y')
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
plt.show()

 

相关文章