.已知y-x,y2=cos(2x),y3-y*y2,完成下列操作。 (1)在同一坐标系下用不同的颜色和线型绘制3条曲线 (2)以子图形式绘制3条曲线。 (3)分别用条形图、阶梯图、杆图和填充图绘制3条曲线。
时间: 2024-12-20 20:19:42 浏览: 15
在Python中,我们可以使用matplotlib库来进行绘图。这里是一个简化的例子,假设`y`和`x`已经作为数据准备好:
```python
import numpy as np
import matplotlib.pyplot as plt
# 假设我们有数据
x = np.linspace(0, 2 * np.pi, 400) # 定义x轴数据
y1 = np.sin(x)
y2 = np.cos(2 * x)
y3 = y1 * y2 # 根据给定的关系计算y3
# (1) 绘制三条曲线
plt.figure()
plt.plot(x, y1, 'r', label='y1', linestyle='-') # 红色实线
plt.plot(x, y2, 'g', label='y2', linestyle='--') # 绿色虚线
plt.plot(x, y3, 'b', label='y3', linestyle=':') # 蓝色点划线
plt.legend() # 添加图例
plt.xlabel('X')
plt.ylabel('Y')
plt.title('不同颜色和线型的曲线')
plt.show()
# (2) 子图形式绘制
fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(12, 4)) # 创建3个小窗口
axs[0].plot(x, y1, 'r', label='y1')
axs[1].plot(x, y2, 'g', label='y2')
axs[2].plot(x, y3, 'b', label='y3')
for ax in axs:
ax.legend()
ax.set_xlabel('X')
ax.set_ylabel('Y')
# (3) 使用不同的图形类型
bar_data = [np.mean(y1), np.mean(y2), np.mean(y3)]
bar_width = 0.35
plt.bar([1, 2, 3], bar_data, width=bar_width, color=['red', 'green', 'blue'])
plt.xticks([1.1, 2.1, 3.1], ['y1', 'y2', 'y3']) # 条形图
step_data = [np.min(y1), np.max(y2), np.max(y3)]
plt.step(np.arange(3) + 0.1, step_data, color=['red', 'green', 'blue']) # 阶梯图
stem_data = [(1, y1[0]), (2, y2[0]), (3, y3[0])] # 杆图
plt.stem(stem_data, use_line_collection=True, linefmt='C0', basefmt='C0o')
fill_data = [[1, y1.min(), y1.max()], [2, y2.min(), y2.max()], [3, y3.min(), y3.max()]] # 填充图
for i, data in enumerate(fill_data):
plt.fill_between(range(1, len(data)+1), data[::2], data[1::2], facecolor=f'C{i}', alpha=0.5)
plt.show()
```
阅读全文