先看一下填充时要使用的两个函数
代码中要用到 np.linspace(),相关的链接:链接
#!/usr/bin/python
#coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 5 * np.pi, 1000)
y1 = np.sin(x)
y2 = np.sin(2 * x)
plt.plot(x, y1, label = "$ y = sin(x) $")
plt.plot(x, y2, label = "$ y = sin(2 * x) $")
plt.legend(loc = 3)
plt.show()
对函数与坐标轴之间的区域进行填充,使用fill函数
#!/usr/bin/python
#coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 5 * np.pi, 1000)
y1 = np.sin(x)
y2 = np.sin(2 * x)
plt.fill(x, y1, color = "g", alpha = 0.3)
plt.fill(x, y2, color = "b", alpha = 0.3)
plt.show()
填充两个函数之间的区域,使用fill_between函数
#!/usr/bin/python
#coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 5 * np.pi, 1000)
y1 = np.sin(x)
y2 = np.sin(2 * x)
plt.plot(x, y1, c = "g")
plt.plot(x, y2, c = 'r')
# fill_between 填充两个函数之间的区域
# 两个函数之间的区域用黄色填充
plt.fill_between(x, y1, y2, facecolor = "yellow")
plt.show()
当y1在y2上方的时候,填充为蓝色,
当y2在y1上方的时候,填充为黄色,
在fill_between中使用where语句进行填充
#!/usr/bin/python
#coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 5 * np.pi, 1000)
y1 = np.sin(x)
y2 = np.sin(2 * x)
plt.plot(x, y1, c = "g")
plt.plot(x, y2, c = 'r')
# interpolate 自动填充空白,当x取得离散点差距较大时,
# 显示的时候两个函数之间的区域可能有空白存在,interpolate 就是用来填充这部分区域
plt.fill_between(x, y1, y2, where= y1 >= y2, facecolor = "blue", interpolate= True)
plt.fill_between(x, y1, y2, where= y2 > y1, facecolor = "yellow", interpolate= True)
plt.show()