利用python制作多Y轴图表

作者: WYC910220 | 来源:发表于2017-05-03 14:35 被阅读0次

    本人一直进行遥感研究,目前从事海洋遥感,有些元素的分析往往是多因素的,在制作表格的时候,会存在多因素并行分析的情况,这时需要我们绘制多Y轴图表。最近用Python试了一下,比较简单,记录一下。根据matplotlib 样例进行修改。由于初学,做的比较简陋,欢迎交流。 代码如下:
    <pre>
    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')
    table = data.sheets()[0] #通过索引顺序获取
    table = data.sheet_by_index(0) #通过索引顺序获取
    table = data.sheet_by_name(u'Sheet1') #通过名称获得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)

    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")

    plt.draw()
    plt.show()
    </pre>

    结果:

    图 结果
                 2017年3月9日 于华师大

    相关文章

      网友评论

        本文标题:利用python制作多Y轴图表

        本文链接:https://www.haomeiwen.com/subject/yewktxtx.html