根据如下绘图写出相应代码绘图函数:y=sin(x),y=cos(x),x=np.linspace(-np.pi,np.pi,256,endpoint=True)并绘制填充区域:紫色区域:(-2.5<x)&(x<-0.5)绿色区域:np.abs(x)<0.5,sinx>0.5紫色区域:color='purple'
时间: 2024-03-26 12:38:42 浏览: 157
利用绘图函数创建填充区
以下是绘制函数的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_sin = np.sin(x)
y_cos = np.cos(x)
mask1 = np.logical_and(-2.5 < x, x < -0.5)
mask2 = np.logical_and(np.abs(x) < 0.5, y_sin > 0.5)
plt.plot(x, y_sin, color='blue', linewidth=2.5, linestyle='-', label='sin(x)')
plt.plot(x, y_cos, color='red', linewidth=2.5, linestyle='-', label='cos(x)')
plt.fill_between(x, y_sin, where=mask1, color='purple', alpha=0.5)
plt.fill_between(x, y_sin, where=mask2, color='green', alpha=0.5)
plt.fill_between(x, y_sin, where=np.logical_and(np.abs(x) < 0.5, y_sin < -0.5), color='purple', alpha=0.5)
plt.legend(loc='upper left')
plt.show()
```
这段代码会绘制出一个包含 sin(x) 和 cos(x) 两个函数的图像,并在其中填充三个区域:两个绿色区域和一个紫色区域。其中,`mask1` 和 `mask2` 分别是用于指定两个绿色填充区域的布尔数组。`np.logical_and()` 函数用于将多个条件组合成一个布尔数组。第三个填充区域的布尔数组为 `np.logical_and(np.abs(x) < 0.5, y_sin < -0.5)`,表示 x 在 [-0.5, 0.5] 范围内,且 sin(x) 小于 -0.5。`plt.fill_between()` 函数会根据这些布尔数组进行填充,`alpha` 参数指定填充区域的透明度。
阅读全文