利用python制作多Y轴图表

本人一直进行遥感研究,目前从事海洋遥感,有些元素的分析往往是多因素的,在制作表格的时候,会存在多因素并行分析的情况,这时需要我们绘制多Y轴图表。最近用python试了一下,比较简单,记录一下。根据matplotlib 样例进行修改。由于初学,做的比较简陋,欢迎交流。
代码如下:

# -*- coding: utf-8 -*-
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import matplotlib.pyplot as plt
import xlrd

#从excel中读取数据
data = xlrd.open_workbook('picture.xlsx')
a=[]
b=[]
c=[]
d=[]
e=[]
f=[]
table = data.sheets()[0]          #通过索引顺序获取
table = data.sheet_by_index(0) #通过索引顺序获取
table = data.sheet_by_name(u'Sheet5')#通过名称获得excel数据

a=table.col_values(0)
b=table.col_values(1)
c=table.col_values(2)
d=table.col_values(3)
e=table.col_values(4)
f=table.col_values(5)
#print(a,b,c,d,e,f)

host = host_subplot(111, axes_class=AA.Axes)
plt.subplots_adjust(right=0.75)

par1 = host.twinx()
par2 = host.twinx()
par3 = host.twinx()

#设置坐标轴摆放位置和距离
offset = 60
new_fixed_axis = par2.get_grid_helper().new_fixed_axis
par2.axis["right"] = new_fixed_axis(loc="right",axes=par2,offset=(offset, 0))
par2.axis["right"].toggle(all=True)

offset = 120
new_fixed_axis = par3.get_grid_helper().new_fixed_axis
par3.axis["right"] = new_fixed_axis(loc="right",axes=par3, offset=(offset, 0))
par3.axis["right"].toggle(all=True)

host.set_xlim(0,48)
host.set_ylim(80, 240)

host.set_xlabel("Time")
host.set_ylabel("zhang san")
par1.set_ylabel("li si")
par2.set_ylabel("wang wu")
par3.set_ylabel("zhao liu")

#图例
p1= host.plot(c,d,"ro-",label="zs")
p2= par1.plot(a,b,"k^-",label="ls")
p3= par2.plot(c,e,"bs-",label="ww")
p4= par3.plot(c,f,"gx-",label="zl")

#范围
par1.set_ylim(90, 150)
par2.set_ylim(100, 160)
par3.set_ylim(1, 5)

host.legend(loc="upper left")

#host.axis["left"].label.set_color(p1.get_color())
#par1.axis["right"].label.set_color(p2.get_color())
#par2.axis["right"].label.set_color(p3.get_color())

plt.draw()
plt.show()

结果:

多Y轴结果图

                                                                             2017年3月9日 于华师大
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值