使用matplotlib怎么在一张图片中绘制两个不重叠的正弦函数
时间: 2023-06-15 19:06:21 浏览: 239
你可以使用 `numpy` 生成两个不同的正弦函数,然后使用 `matplotlib` 绘制它们。
以下是一个示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成正弦函数数据
x = np.linspace(0, 10, 1000)
y1 = np.sin(x)
y2 = np.sin(2*x)
# 绘制图像
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='sin(2x)')
# 添加图例和坐标轴标签
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
# 显示图像
plt.show()
```
在上面的代码中,我们首先使用 `numpy` 生成了两个正弦函数 `y1` 和 `y2`,然后使用 `matplotlib` 绘制了它们。`plt.plot()` 函数会绘制一条线,并将其添加到当前图像中。我们可以使用 `label` 参数为每条线添加标签。最后,我们添加了图例和坐标轴标签,并使用 `plt.show()` 函数显示图像。
相关问题
使用matplotlib怎么在一张图片中绘制两个不重叠的正弦函数,他们的水平线不同
可以使用`subplot`方法在同一张图片中创建两个不重叠的子图,并在每个子图中绘制一个正弦函数。
下面是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 4*np.pi, 100)
y1 = np.sin(x)
y2 = np.sin(x - np.pi/2)
# 创建画布和子图
fig, (ax1, ax2) = plt.subplots(2, 1)
# 在第一个子图中绘制正弦函数
ax1.plot(x, y1)
ax1.set_title('sin(x)')
# 在第二个子图中绘制正弦函数
ax2.plot(x, y2)
ax2.set_title('sin(x - pi/2)')
# 设置子图之间的间距
fig.subplots_adjust(hspace=0.5)
# 显示图像
plt.show()
```
运行以上代码,即可在一张图片中绘制两个不重叠的正弦函数,它们的水平线不同。效果如下图所示:
![image.png](attachment:image.png)
使用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()
下面是使用`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轴和刻度设置为所需的样式。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)