matplotlib设置曲线图x轴和y轴位置

import numpy as np
import matplotlib.pyplot as plt

'''
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):
start就是开始的数字
stop就是结束的数字
num就是返回的数量
endpoint是一个bool型变量,如果是True 那么会出现最后的stop
'''
x = np.linspace(-6, 6, 50)
y = x ** 2
plt.plot(x, y, color='red')  # 线条为红色

# 获取当前的坐标轴
ax = plt.gca()
# 设置右边框和上边框
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 设置x坐标轴为下边框
ax.xaxis.set_ticks_position('bottom')
# 设置y坐标轴为左边框
ax.yaxis.set_ticks_position('left')
# 设置x轴、y轴在(0,0)的位置
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
plt.show()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解决这个问题。你可以使用 matplotlib 的 `twinx()` 和 `twiny()` 方法来创建第二个 x 和 y ,并使用 `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) # 创建图像对象和第一个坐标 fig, ax1 = plt.subplots() # 画第一条曲线 ax1.plot(x, y1, color='r', label='sin') # 设置第一个坐标的标签和颜色 ax1.set_xlabel('x') ax1.set_ylabel('sin(x)', color='r') ax1.tick_params(axis='y', labelcolor='r') # 创建第二个坐标 ax2 = ax1.twinx() # 画第二条曲线 ax2.plot(x, y2, color='g', label='cos') # 设置第二个坐标的标签和颜色 ax2.set_ylabel('cos(x)', color='g') ax2.tick_params(axis='y', labelcolor='g') # 创建第三个坐标 ax3 = ax1.twiny() # 画第三条曲线 ax3.plot(x, y3, color='b', label='tan') # 设置第三个坐标的标签和颜色 ax3.set_xlabel('tan(x)', color='b') ax3.tick_params(axis='x', labelcolor='b') # 添加图例 lines, labels = ax1.get_legend_handles_labels() lines2, labels2 = ax2.get_legend_handles_labels() lines3, labels3 = ax3.get_legend_handles_labels() ax3.legend(lines + lines2 + lines3, labels + labels2 + labels3, loc='best') # 显示图像 plt.show() ``` 在这个例子中,我们创建了一个图像对象 `fig` 和一个坐标对象 `ax1`,然后使用 `plot()` 方法画出第一条曲线。接着,我们使用 `twinx()` 方法创建了第二个 y ,并使用 `plot()` 方法画出第二条曲线。最后,我们使用 `twiny()` 方法创建了第二个 x ,并使用 `plot()` 方法画出第三条曲线。 注意,我们需要分别设置每个坐标的标签和颜色,并使用 `tick_params()` 方法设置每个坐标的刻度标签颜色。同时,我们需要使用 `get_legend_handles_labels()` 方法获取每个坐标的图例,并使用 `legend()` 方法将它们合并在一起。 希望这个例子能够帮助你画出多条曲线的双 x 双 y 图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值