使用matplotlib优化下面的代码,绘制两个正弦函数图形,两个函数都是sin(2x)且不重叠第一个函数所占面积的颜色全为淡紫色,第二个函数所占用面积颜色在y>0时为淡紫色,y<0时为肉粉色,函数线的颜色为蓝色,保证x,y轴都没有刻度。注意:可以使用的函数包括:fill_between、xlim、ylim、xticks、yticks、axes、plot import numpy as np import matplotlib.pyplot as plt n = 256 X = np.linspace(-np.pi, np.pi, n) Y = np.sin(2 * X) # YOUR CODE HERE plt.show()
时间: 2023-06-15 11:06:55 浏览: 91
下面是使用`matplotlib`优化后的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
n = 256
X = np.linspace(-np.pi, np.pi, n)
Y1 = np.sin(2 * X)
Y2 = -np.sin(2 * X)
fig, ax = plt.subplots()
ax.fill_between(X, Y1, color='lavender')
ax.fill_between(X, Y2, 0, where=(Y2>0), color='lavender')
ax.fill_between(X, Y2, 0, where=(Y2<=0), color='pink')
ax.plot(X, Y1, color='blue')
ax.plot(X, Y2, color='blue')
ax.set_xlim(-np.pi, np.pi)
ax.set_ylim(-1, 1)
ax.set_xticks([])
ax.set_yticks([])
plt.show()
```
这里使用了`subplots()`函数来创建一个包含一个子图的图形。然后使用`fill_between()`函数分别填充两个函数的下方区域。`where`参数用于指定填充区域的条件,例如`where=(Y2>0)`表示`Y2`大于0时填充该区域。然后使用`plot()`函数绘制两个sin(2x)函数的线条。最后使用`set_xlim()`、`set_ylim()`、`set_xticks()`和`set_yticks()`函数将图形的x轴、y轴和刻度设置为所需的样式。
阅读全文