matplotlib 画同一y轴画大尺度曲线
时间: 2023-10-06 07:08:58 浏览: 42
如果你要在同一y轴下同时画多个大尺度曲线,可以使用`twinx()`函数创建一个共享y轴的新的Axes对象,并在该对象上绘制新的曲线,例如:
```python
import matplotlib.pyplot as plt
# 创建Figure和Axes对象
fig, ax1 = plt.subplots()
ax2 = ax1.twinx() # 创建共享y轴的新Axes对象
# 绘制曲线
ax1.plot(x1, y1, 'r-')
ax2.plot(x2, y2, 'b-')
# 设置坐标轴标签和图例
ax1.set_xlabel('x')
ax1.set_ylabel('y1', color='r')
ax2.set_ylabel('y2', color='b')
plt.legend(['y1', 'y2'])
plt.show()
```
其中,`ax1`是第一个y轴的Axes对象,`ax2`是第二个y轴的Axes对象,`ax2`通过`twinx()`函数创建并与`ax1`共享y轴。`plot()`函数用于在各自的Axes对象上绘制曲线,`set_xlabel()`和`set_ylabel()`函数用于设置坐标轴标签,`legend()`函数用于设置图例。最后调用`show()`函数显示图形。
相关问题
用matplotlib在同一画布绘制多个线
可以使用`plt.plot()`函数来在同一个画布上绘制多条线。以下是一个简单的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成一些数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
# 绘制三条线
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.plot(x, y3, label='tan(x)')
# 添加图例和标签
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.title('Multiple Lines')
# 显示图形
plt.show()
```
在这个例子中,我们使用`np.linspace()`函数生成一个包含100个点的等间距数组`x`,并分别计算出三个数组`y1`、`y2`和`y3`,分别代表三条线的y值。然后,我们用`plt.plot()`函数绘制这三条线,并在`label`参数中指定每条线的标签。最后,我们使用`plt.legend()`函数添加图例,并使用`plt.xlabel()`和`plt.ylabel()`函数添加x轴和y轴标签,使用`plt.title()`函数添加标题。最后,我们使用`plt.show()`函数显示图形。
同一坐标轴画左右两边不同的数据
你可以使用不同的线条颜色或者图案来区分左右两侧的数据。如果你使用的是 matplotlib 库,可以使用 `plt.plot()` 函数的 `color` 或 `linestyle` 参数来指定不同的线条颜色或图案。
例如,下面的代码演示了如何在同一坐标轴上画左右两侧不同的数据,并使用不同的线条颜色和图案进行区分:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成左右两侧的数据
x = np.linspace(-5, 5, 100)
y_left = np.sin(x)
y_right = np.cos(x)
# 绘制左侧数据的线条,使用红色实线
plt.plot(x, y_left, color='red', linestyle='-')
# 绘制右侧数据的线条,使用蓝色虚线
plt.plot(x, y_right, color='blue', linestyle='--')
# 显示图形
plt.show()
```
运行上述代码,会得到一张包含左右两侧数据的图形,左侧数据使用红色实线表示,右侧数据使用蓝色虚线表示。