1. 程式人生 > >利用python製作多Y軸圖表

利用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日 於華師大