同一坐标系,左右两边坐标轴横轴可以不同吗,用pyplot举个例子
时间: 2023-09-30 16:10:36 浏览: 180
可以的,可以使用 `plt.twinx()` 函数创建一个与原坐标系共享横轴但纵轴不同的坐标系。下面是一个简单的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax1 = plt.subplots()
ax1.plot(x, y1, 'b-')
ax1.set_xlabel('x')
ax1.set_ylabel('y1', color='b')
ax1.tick_params('y', colors='b')
ax2 = ax1.twinx()
ax2.plot(x, y2, 'r-')
ax2.set_ylabel('y2', color='r')
ax2.tick_params('y', colors='r')
fig.tight_layout()
plt.show()
```
输出的图像会有两个纵轴,左边的纵轴对应蓝色曲线,右边的纵轴对应红色曲线。
相关问题
同一坐标系,左右两边坐标轴横轴可以不同吗
左右两边坐标轴的横轴可以不同,这在一些特定的情况下是很有用的。例如,如果你需要在同一张图中比较不同的数据集,但这些数据集的度量单位不同,那么你可以使用不同的横坐标轴来表示它们,以便更好地展示它们之间的关系。另外,在某些科学领域中,可能需要使用对数坐标轴或其他非线性坐标轴来表示数据,这时左右两边的坐标轴也可以不同。
matlab在不同坐标轴画曲线,怎样把横轴划分不同的曲线画在同一坐标里?
您可以使用 MATLAB 中的 `hold on` 和 `hold off` 函数来在同一坐标系中绘制多条曲线。
以下是一个示例代码:
```matlab
% 创建 x 和 y 向量
x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);
y3 = tan(x);
% 绘制第一条曲线
plot(x, y1);
hold on;
% 绘制第二条曲线
plot(x, y2);
% 绘制第三条曲线
plot(x, y3);
% 添加图例
legend('y = sin(x)', 'y = cos(x)', 'y = tan(x)');
% 关闭 hold on
hold off;
```
在这个例子中,我们首先创建了 x 和 y 向量,并使用 `plot()` 函数绘制了三条曲线。然后,我们使用 `hold on` 函数告诉 MATLAB 在同一坐标系中绘制多个图形。最后,我们使用 `legend()` 函数添加图例,并使用 `hold off` 函数关闭 `hold on`。
如果您想要在不同的坐标轴中绘制曲线,可以使用 `subplot()` 函数来创建多个子图形。例如:
```matlab
% 创建 x 和 y 向量
x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);
y3 = tan(x);
% 创建第一个子图形
subplot(3,1,1);
plot(x, y1);
title('y = sin(x)');
% 创建第二个子图形
subplot(3,1,2);
plot(x, y2);
title('y = cos(x)');
% 创建第三个子图形
subplot(3,1,3);
plot(x, y3);
title('y = tan(x)');
```
在这个例子中,我们使用 `subplot()` 函数创建了三个子图形,并在每个子图形中绘制了一条曲线。您可以使用类似的方法来在不同的坐标轴中绘制多条曲线。
阅读全文