python如何画多个纵坐标_python中用Matplotlib做多个纵轴 (多y轴)

本文介绍了如何在Python的Matplotlib库中创建多个纵坐标轴,包括使用HostAxes和ParasiteAxes实现寄生轴方法,以及通过twinx()函数结合mpl_toolkits.axes_grid1模块。详细展示了创建不同轴的步骤,包括设置坐标轴颜色、刻度范围等,并给出了代码示例。
摘要由CSDN通过智能技术生成

Matlab里做多给轴的函数很直接,双轴是plotyy, 三轴是plotyyy, 四轴是plot4y,更多应该是multiplotyyy。

而matplotlib似乎可以用figure.add_axes()来实现,探索中……

多轴绘制的图层原理

关于Matplotlib的图层

图层可分为四种

Canvas层 画布层 位于最底层,用户一般接触不到。 matplotlib.pyplot就是一个canvas层

Figure层 图像层 建立在Canvas之上。 plt.figure()就是一个figure层

Axes层 坐标层 建立在Figure之上。fig.add_axes(ax)就加一个Axes层ax在figure上,这时就可以画出一个空白的坐标了。

plot层 绘制层 坐标轴、图例等辅助信息层以及图像层都是建立在Axes之上

【2018-5-14】

多轴的绘制要用到有两种方法可以实现,一是用主轴和寄生轴的方法,即mpl_toolkits.axisartist.parasite_axes里的HostAxes,和ParasiteAxes。 另一种是用twinx(),结合mpl_toolkits.axes_grid1里的host_subplot。 这里用寄生轴的方法实现。

首先是要创建主轴用HostAxes(figure,[ 左,下,宽,高 ]) 然后寄生出独立的y轴来,并共享x轴。独立的y轴对应独立的曲线 将寄生轴加入主轴的列表

第一根寄生轴可以直接借用原坐标的右轴,所以不需要新增轴 如果需要两个以上的y轴,第三个y轴就要新建固定轴了,要用到get_grid_helper().new_fixed_axis 设置第三及更多Y轴的偏移量 将主轴装载到figure上 设置轴的外面特性,比如颜色,刻度范围等

frommpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxes

import matplotlib.pyplotasplt

import numpyasnp

fig= plt.figure(1) #定义figure,(1)中的1是什么

ax_cof= HostAxes(fig, [0, 0, 0.9, 0.9]) #用[left, bottom, weight, height]的方式定义axes,0 <= l,b,w,h <= 1#parasite addtional axes, share x

ax_temp= ParasiteAxes(ax_cof, sharex=ax_cof)

ax_load= ParasiteAxes(ax_cof, sharex=ax_cof)

ax_cp= ParasiteAxes(ax_cof, sharex=ax_cof)

ax_wear= ParasiteAxes(ax_cof, sharex=ax_cof)

#append axes

ax_cof.parasites.append(ax_temp)

ax_cof.parasites.append(ax_load)

ax_cof.parasites.append(ax_cp)

ax_cof.parasites.append(ax_wear)

#invisible right axis of ax_cof

ax_cof.axis['right'].set_visible(False)

ax_cof.axis['top'].set_visible(False)

ax_temp.axis['right'].set_visible(True)

ax_temp.axis['right

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值