两个函数图像y=x+1和y=1/x,绘制到同一个图像上,分别采用两种方法进行绘制,设置函数y=x+1线性颜色为红色,点标记为六角形,设置函数y=1/x线性颜色为绿色,点标记为五角形。
时间: 2024-09-29 09:08:29 浏览: 46
在Python的matplotlib库中,你可以使用`plot()`函数结合`scatter()`函数来实现这个需求。以下是两种方法的具体步骤:
**方法一:使用`plot()`和`scatter()`函数**
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义数据范围
x = np.linspace(-5, 5, 400)
# 绘制两条曲线
plt.plot(x, x + 1, 'r', marker='^', linestyle='-', label='y = x + 1 (六边形标记)')
plt.plot(1 / x, 1, 'g', linestyle='', markersize=10, marker='5', label='y = 1/x (五角星标记)')
# 添加坐标轴标签和图例
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
# 显示图形
plt.show()
```
**方法二:使用`twinx()`函数创建共享x轴**
如果你想要在同一幅图上展示两种不同类型的线条和散点,并且希望它们共享相同的x轴,可以使用`twinx()`函数创建第二个y轴:
```python
import matplotlib.pyplot as plt
import numpy as np
fig, ax1 = plt.subplots()
x = np.linspace(-5, 5, 400)
ax1.plot(x, x + 1, 'r', marker='^', linestyle='-', label='y = x + 1 (六边形标记)')
ax1.set_ylabel('y = x + 1', color='red') # 设置第一条轴的颜色
ax2 = ax1.twinx() # 创建第二个y轴
ax2.plot(1 / x, 1, 'g', linestyle='', markersize=10, marker='5', label='y = 1/x (五角星标记)')
ax2.set_ylabel('y = 1/x', color='green') # 设置第二条轴的颜色
ax1.tick_params(axis='y', colors='red')
ax2.tick_params(axis='y', colors='green')
plt.xlabel('x')
plt.title('两个函数图像在同一坐标系')
plt.legend()
plt.show()
```
这两种方法都可以得到你所需的效果。
阅读全文