python matplotlib 双y轴图像实现(2)


大家好,我是侯小啾!在这里插入图片描述

在这里插入图片描述本期blog分享的内容是,使用python matplotlib 绘制出双y轴图像 的具体实现。


绘制双y轴的思想,也是用到了matplotlib面向对象绘图的思想。在不指定位置的情况下,在一个画布上创建出两个坐标系,其中第一个坐标系正常创建,第二个坐标系则使用专有的twinx()方法创建。

则两个坐标系的位置重合。第一个坐标系轴在左,通过twinx()方法创建出的坐标系则轴在右。因为有了两个y轴,所以再对y轴属性进行操作的时候,则需要面向对象,如果再简单地使用plt.ylabel()等方法,则只能操作到左轴,而影响不到右轴。

下边做一个示例,首先是导包和准备数据,这里准备一组销量数据,并计算其增长率,将其体现在右轴。

具体代码如下:

import matplotlib.pyplot as plt

生成一组数据

x = range(7)

y1 = [2000, 1600, 3000, 6200, 7000, 9800, 11000]

y2 = [1]

for i in range(len(y1)):

if i+1 == len(y1):

break

rate = round(y1[

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值