日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 用Matplotlib作圖中有多個Y軸

瀏覽:21日期:2022-07-03 18:43:35

在作圖過程中,需要繪制多個變量,但是每個變量的數量級不同,在一個坐標軸下作圖導致曲線變化很難觀察,這時就用到多個坐標軸。本文除了涉及多個坐標軸還包括Axisartist相關作圖指令、做圖中label為公式的表達方式、matplotlib中常用指令。

一、放一個官方例子先

from mpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxesimport matplotlib.pyplot as pltimport numpy as npfig = 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 xax_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 axesax_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_cofax_cof.axis[’right’].set_visible(False)ax_cof.axis[’top’].set_visible(False)ax_temp.axis[’right’].set_visible(True)ax_temp.axis[’right’].major_ticklabels.set_visible(True)ax_temp.axis[’right’].label.set_visible(True)#set label for axisax_cof.set_ylabel(’cof’)ax_cof.set_xlabel(’Distance (m)’)ax_temp.set_ylabel(’Temperature’)ax_load.set_ylabel(’load’)ax_cp.set_ylabel(’CP’)ax_wear.set_ylabel(’Wear’)load_axisline = ax_load.get_grid_helper().new_fixed_axiscp_axisline = ax_cp.get_grid_helper().new_fixed_axiswear_axisline = ax_wear.get_grid_helper().new_fixed_axisax_load.axis[’right2’] = load_axisline(loc=’right’, axes=ax_load, offset=(40,0))ax_cp.axis[’right3’] = cp_axisline(loc=’right’, axes=ax_cp, offset=(80,0))ax_wear.axis[’right4’] = wear_axisline(loc=’right’, axes=ax_wear, offset=(120,0))fig.add_axes(ax_cof)’’’ #set limit of x, yax_cof.set_xlim(0,2)ax_cof.set_ylim(0,3)’’’curve_cof, = ax_cof.plot([0, 1, 2], [0, 1, 2], label='CoF', color=’black’)curve_temp, = ax_temp.plot([0, 1, 2], [0, 3, 2], label='Temp', color=’red’)curve_load, = ax_load.plot([0, 1, 2], [1, 2, 3], label='Load', color=’green’)curve_cp, = ax_cp.plot([0, 1, 2], [0, 40, 25], label='CP', color=’pink’)curve_wear, = ax_wear.plot([0, 1, 2], [25, 18, 9], label='Wear', color=’blue’)ax_temp.set_ylim(0,4)ax_load.set_ylim(0,4)ax_cp.set_ylim(0,50)ax_wear.set_ylim(0,30)ax_cof.legend()#軸名稱,刻度值的顏色#ax_cof.axis[’left’].label.set_color(ax_cof.get_color())ax_temp.axis[’right’].label.set_color(’red’)ax_load.axis[’right2’].label.set_color(’green’)ax_cp.axis[’right3’].label.set_color(’pink’)ax_wear.axis[’right4’].label.set_color(’blue’)ax_temp.axis[’right’].major_ticks.set_color(’red’)ax_load.axis[’right2’].major_ticks.set_color(’green’)ax_cp.axis[’right3’].major_ticks.set_color(’pink’)ax_wear.axis[’right4’].major_ticks.set_color(’blue’)ax_temp.axis[’right’].major_ticklabels.set_color(’red’)ax_load.axis[’right2’].major_ticklabels.set_color(’green’)ax_cp.axis[’right3’].major_ticklabels.set_color(’pink’)ax_wear.axis[’right4’].major_ticklabels.set_color(’blue’)ax_temp.axis[’right’].line.set_color(’red’)ax_load.axis[’right2’].line.set_color(’green’)ax_cp.axis[’right3’].line.set_color(’pink’)ax_wear.axis[’right4’].line.set_color(’blue’)plt.show()

該例子的作圖結果為:

python 用Matplotlib作圖中有多個Y軸

二、實際繪制

在實際使用中希望繪制的多變量數值如下表所示:

python 用Matplotlib作圖中有多個Y軸

為了實現這個作圖,經過反復修改美化,代碼如下:

1.導入包

from mpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxesimport matplotlib.pyplot as plt

2.導入數據

x = [’ATL’,’LAX’,’CLT’,’LAS’,’MSP’,’DTW’,’PHX’,’DCA’,’SLC’,’ORD’,’DFW’,’PHL’,’PDX’,’DEN’,’IAH’,’BOS’,’SAN’,’BWI’,’MDW’,’IND’]k_in = [49.160,47.367,26.858,30.315,16.552,28.590,23.905,18.818,28.735,6.721,10.315,26.398,38.575,7.646,11.227,8.864,15.327,19.120,11.521,19.618]k_out = [38.024,19.974,25.011,22.050,30.108,18.327,20.811,28.464,23.72,8.470,4.119,10.000,25.158,7.851,10.450,11.130,15.441,7.519,20.819,32.825]p = [0.0537,0.0301,0.0306,0.0217,0.0229,0.0223,0.0218,0.0179,0.0155,0.0465,0.0419,0.0165,0.0091,0.0357,0.0232,0.0200,0.0129,0.0143,0.0113,0.0064]K = [4.6844,2.0296,1.5858,1.1347,1.0706,1.0442,0.9764,0.8447,0.8141,0.7066,0.6041,0.5990,0.5808,0.5534,0.5023,0.3992,0.3964,0.3799,0.3639,0.3331]

3.作圖并保存,相關指令后有備注,可以幫助理解

fig = plt.figure(1) #定義figureax_k = HostAxes(fig, [0, 0, 0.9, 0.9]) #用[left, bottom, weight, height]的方式定義axes,0 <= l,b,w,h <= 1#parasite addtional axes, share xax_p = ParasiteAxes(ax_k, sharex=ax_k)ax_K = ParasiteAxes(ax_k, sharex=ax_k)#append axesax_k.parasites.append(ax_p)ax_k.parasites.append(ax_K)ax_k.set_ylabel(’$K_i^{in};/;K_i^{out}$’)ax_k.axis[’bottom’].major_ticklabels.set_rotation(45)ax_k.set_xlabel(’Airport’)ax_k.axis[’bottom’,’left’].label.set_fontsize(12) # 設置軸label的大小ax_k.axis[’bottom’].major_ticklabels.set_pad(8) #設置x軸坐標刻度與x軸的距離,坐標軸刻度旋轉會使label和坐標軸重合ax_k.axis[’bottom’].label.set_pad(12) #設置x軸坐標刻度與x軸label的距離,label會和坐標軸刻度重合ax_k.axis[:].major_ticks.set_tick_out(True) #設置坐標軸上刻度突起的短線向外還是向內#invisible right axis of ax_kax_k.axis[’right’].set_visible(False)ax_k.axis[’top’].set_visible(True)ax_p.axis[’right’].set_visible(True)ax_p.axis[’right’].major_ticklabels.set_visible(True)ax_p.axis[’right’].label.set_visible(True)ax_p.axis[’right’].major_ticks.set_tick_out(True)ax_p.set_ylabel(’${p_i}$’)ax_p.axis[’right’].label.set_fontsize(13)ax_K.set_ylabel(’${K_i}$’)K_axisline = ax_K.get_grid_helper().new_fixed_axisax_K.axis[’right2’] = K_axisline(loc=’right’, axes=ax_K, offset=(60,0))ax_K.axis[’right2’].major_ticks.set_tick_out(True)ax_K.axis[’right2’].label.set_fontsize(13)fig.add_axes(ax_k)curve_k1, = ax_k.plot(list(range(20)), k_in, marker =’v’,markersize=8,label='$K_i^{in}$',alpha = 0.7)curve_k2, = ax_k.plot(list(range(20)), k_out, marker =’^’,markersize=8, label='$K_i^{out}$',alpha = 0.7)curve_p, = ax_p.plot(list(range(20)), p, marker =’P’,markersize=8,label='${p_i}$',alpha = 0.7)curve_K, = ax_K.plot(list(range(20)), K, marker =’o’,markersize=8, label='${K_i}$',alpha = 0.7,linewidth=3)plt.xticks(list(range(20)), x)# ax_k.set_xticks(list(range(20))) # ax_k.set_xticklabels(x)ax_k.axis[’bottom’].major_ticklabels.set_rotation(45)# ax_k.set_rotation(90)# plt.xticks(list(range(20)), x, rotation = ’vertical’)ax_p.set_ylim(0,0.06)ax_K.set_ylim(0,5)ax_k.legend(labelspacing = 0.4, fontsize = 10)#軸名稱,刻度值的顏色 ax_p.axis[’right’].label.set_color(curve_p.get_color()) # 坐標軸label的顏色ax_K.axis[’right2’].label.set_color(curve_K.get_color())ax_p.axis[’right’].major_ticks.set_color(curve_p.get_color()) # 坐標軸刻度小突起的顏色ax_K.axis[’right2’].major_ticks.set_color(curve_K.get_color())ax_p.axis[’right’].major_ticklabels.set_color(curve_p.get_color()) # 坐標軸刻度值的顏色ax_K.axis[’right2’].major_ticklabels.set_color(curve_K.get_color())ax_p.axis[’right’].line.set_color(curve_p.get_color()) # 坐標軸線的顏色ax_K.axis[’right2’].line.set_color(curve_K.get_color())plt.savefig(’10.key metrics mapping.pdf’, bbox_inches=’tight’, dpi=800)plt.show()

4.繪制結果

python 用Matplotlib作圖中有多個Y軸

PS

該作圖是在Axisartist的基礎上完成的,一些平時常用的繪制指令在此處是無用的。經過查找相關資料,https://www.osgeo.cn/matplotlib/tutorials/toolkits/axisartist.html 該網站可以提供一些用法的幫助。

以上就是python 用Matplotlib作圖中有多個Y軸的詳細內容,更多關于python Matplotlib作圖的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产一区丝袜| 在线免费观看亚洲| 免费国产自久久久久三四区久久 | 国产精品毛片视频| 国产精品日韩精品中文字幕| 国产日韩一区| 免费高潮视频95在线观看网站| 亚洲va在线| 综合五月婷婷| 国精品产品一区| 欧美福利在线| 精品视频久久| 99在线|亚洲一区二区| 日韩激情精品| 久久免费国产| 亚洲成人精选| 日本成人在线一区| 欧美激情aⅴ一区二区三区 | 欧美日韩国产在线一区| 99视频一区| 黄色网一区二区| 日韩专区欧美专区| 国产91欧美| 无码日韩精品一区二区免费| 福利在线免费视频| 日韩不卡手机在线v区| 日韩毛片视频| 国产精品啊啊啊| 中文无码日韩欧| 色偷偷偷在线视频播放| 久久不射网站| 成人亚洲一区| 欧美日本久久| 亚洲免费资源| 亚洲大全视频| 天堂资源在线亚洲| 日韩av在线播放网址| 国产情侣久久| 91福利精品在线观看| 亚洲香蕉久久| 综合激情一区| 美美哒免费高清在线观看视频一区二区| 久久精品123| 免费毛片在线不卡| 99久久亚洲精品蜜臀| 日本久久精品| 欧洲精品一区二区三区| 成人在线免费观看网站| 国产美女高潮在线观看| 日本一区二区高清不卡| 黄色aa久久| 999久久久国产精品| 色在线视频观看| 久久久男人天堂| 日韩精品影视| 中文日韩欧美| 蜜臀va亚洲va欧美va天堂| 99在线精品免费视频九九视| 国产一区二区高清| 日韩精品免费观看视频| 蜜桃视频一区二区| 国产三级一区| 欧美韩日一区| 欧美不卡高清| 一区二区不卡| 国产精品国码视频| 不卡一二三区| 国产一区导航| 日韩一区二区三区在线看| 久久精品国产免费| 久久狠狠婷婷| 日本在线不卡视频| 国产一区二区三区久久 | 免费在线观看成人| 91国内精品| 午夜av成人| 久久狠狠久久| 香蕉精品视频在线观看| 日本不卡视频在线观看| 国产精品99一区二区三区| 欧美精品九九| 国产精品**亚洲精品| 久久九九精品| 国产精品久久国产愉拍| 久久久精品久久久久久96 | 欧美日一区二区三区在线观看国产免| 四虎精品一区二区免费| 蜜桃91丨九色丨蝌蚪91桃色| 欧美精品影院| 在线日韩成人| 亚洲综合小说| 亚洲三级精品| 亚洲精品国产精品粉嫩| 亚洲免费中文| 日韩中文字幕一区二区三区| 免费中文字幕日韩欧美| 亚洲资源网站| 国产日韩欧美高清免费| 88久久精品| 日韩二区三区在线观看| 日韩高清二区| 国产精品极品| 亚洲综合在线电影| 欧美日韩国产v| 天堂av一区| 97精品国产99久久久久久免费| 日韩一区二区三免费高清在线观看| 日韩久久99| 日韩中文字幕在线一区| 中文精品视频| 久久三级福利| 狠狠色综合网| 婷婷精品在线观看| 国产精品综合色区在线观看| 国产一区二区三区91| 国产v综合v| 每日更新成人在线视频| 综合一区二区三区| 国产九九精品| 久久裸体视频| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲日本欧美| 国产精品一区二区三区av| 97国产成人高清在线观看| 99久久九九| 美国三级日本三级久久99 | 欧美激情综合| 香蕉久久精品| 久久精品97| 激情丁香综合| 亚洲精品一区二区妖精| 国产日韩一区二区三免费高清| 久久激情一区| 国产欧美日韩在线一区二区| 久久久精品午夜少妇| 综合一区av| 新版的欧美在线视频| 美女精品在线观看| 久久在线91| 天堂va蜜桃一区二区三区| 鲁大师精品99久久久| 黄色在线一区| 鲁大师精品99久久久| 免费日韩av| 伊伊综合在线| 日韩超碰人人爽人人做人人添| 婷婷激情一区| 日韩黄色av| 欧美/亚洲一区| 精品一区二区三区在线观看视频 | 国产一区调教| 日韩中文字幕无砖| 欧美1级日本1级| 狠狠久久伊人中文字幕| 中文无码日韩欧| 成人看片网站| 久久99国产精品视频| 日产欧产美韩系列久久99| 欧美不卡视频| 成人精品视频| 国产福利一区二区精品秒拍| 亚洲乱码一区| 国产色综合网| 夜鲁夜鲁夜鲁视频在线播放| 国产精品极品| 日本综合精品一区| 99国产精品自拍| 久久久噜噜噜| 麻豆mv在线观看| 麻豆国产精品视频| 亚洲精品一区二区在线播放∴| 欧美aa一级| 精品久久久久中文字幕小说| 日韩二区三区在线观看| 国产精品美女久久久浪潮软件| 韩国精品主播一区二区在线观看| 久久精品理论片| 国产调教精品| 日韩中文字幕无砖| 日韩在线播放一区二区| 999视频精品| 精品日韩视频| 亚洲国产福利| 国产成人免费| 久久97视频| 久久香蕉精品香蕉| 国产精品极品国产中出| 日韩激情综合| 日本成人在线不卡视频| 午夜电影一区| 欧美亚洲福利| 日韩av不卡一区二区| 日韩有码av| 亚洲午夜免费| 亚洲精品第一| 视频一区日韩精品| 日韩欧美2区| 奇米亚洲欧美| 国产精品主播在线观看| 国产九一精品|