使用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-17 10:03:40 浏览: 153
这里是使用`fill_between`函数和一些参数优化绘图代码的示例:
```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, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))
# Plot 1
ax1.fill_between(X, Y1, color='lavender')
ax1.plot(X, Y1, color='blue')
# Set axis properties
ax1.set_xlim([-np.pi, np.pi])
ax1.set_ylim([-1, 1])
ax1.set_xticks([])
ax1.set_yticks([])
# Plot 2
ax2.fill_between(X, Y2, where=Y2>0, color='lavender')
ax2.fill_between(X, Y2, where=Y2<0, color='pink')
ax2.plot(X, Y2, color='blue')
# Set axis properties
ax2.set_xlim([-np.pi, np.pi])
ax2.set_ylim([-1, 1])
ax2.set_xticks([])
ax2.set_yticks([])
# Show plot
plt.show()
```
其中,`fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))`创建了一个大小为$12\times 6$的图形,其中包含了两个子图`ax1`和`ax2`,分别对应两个正弦函数的绘制。`fill_between`函数实现了填充函数曲线下的面积,并且使用`where`参数实现了对不同区域使用不同的颜色。`set_xlim`和`set_ylim`实现了对坐标轴范围的限制,`set_xticks`和`set_yticks`实现了对坐标轴刻度的隐藏。最后,使用`plt.show()`将图形显示出来。
阅读全文