亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Matplotlib 2子圖,1色條

Matplotlib 2子圖,1色條

MYYA 2019-06-12 16:10:34
Matplotlib 2子圖,1色條我花了很長時間研究如何讓兩個子圖共享同一個y軸,在Matplotlib中,兩者共享一個色條。發生的事情是當我打電話給colorbar()功能subplot1或subplot2,它會自動調整地塊的大小,使彩色條加上圖將適合在“子圖”包圍框中,從而使兩個并排的地塊具有兩個非常不同的大小。為了解決這個問題,我嘗試創建第三個子圖,然后我黑了這個子圖,使其不使用一個彩色條來渲染任何情節。唯一的問題是,現在這兩個地塊的高度和寬度是不均勻的,我不知道如何使它看起來還好。這是我的代碼:from __future__ import divisionimport matplotlib.pyplot as pltimport numpy as npfrom matplotlib import patchesfrom matplotlib.ticker import NullFormatter# SIS FunctionsTE = 1 # Einstein radiusg1 = lambda x,y: (TE/2) * (y**2-x**2)/((x**2+y**2)**(3/2)) g2 = lambda x,y: -1*TE*x*y / ((x**2+y**2)**(3/2))kappa = lambda x,y: TE / (2*np.sqrt(x**2+y**2))coords = np.linspace(-2,2,400)X,Y = np.meshgrid(coords,coords)g1out = g1(X,Y)g2out = g2(X,Y)kappaout = kappa(X,Y)for i in range(len(coords)):    for j in range(len(coords)):        if np.sqrt(coords[i]**2+coords[j]**2) <= TE:            g1out[i][j]=0            g2out[i][j]=0fig = plt.figure()fig.subplots_adjust(wspace=0,hspace=0)# subplot number 1ax1 = fig.add_subplot(1,2,1,aspect='equal',xlim=[-2,2],ylim=[-2,2])plt.title(r"$\gamma_{1}$",fontsize="18")plt.xlabel(r"x ($\theta_{E}$)",fontsize="15")plt.ylabel(r"y ($\theta_{E}$)",rotation='horizontal',fontsize="15")plt.xticks([-2.0,-1.5,-1.0,-0.5,0,0.5,1.0,1.5])plt.xticks([-2.0,-1.5,-1.0,-0.5,0,0.5,1.0,1.5])plt.imshow(g1out,extent=(-2,2,-2,2))plt.axhline(y=0,linewidth=2,color='k',linestyle="--")plt.axvline(x=0,linewidth=2,color='k',linestyle="--")e1 = patches.Ellipse((0,0),2,2,color='white')ax1.add_patch(e1)# subplot number 2ax2 = fig.add_subplot(1,2,2,sharey=ax1,xlim=[-2,2],ylim=[-2,2])plt.title(r"$\gamma_{2}$",fontsize="18")plt.xlabel(r"x ($\theta_{E}$)",fontsize="15")ax2.yaxis.set_major_formatter( NullFormatter() )plt.axhline(y=0,linewidth=2,color='k',linestyle="--")plt.axvline(x=0,linewidth=2,color='k',linestyle="--")plt.imshow(g2out,extent=(-2,2,-2,2))e2 = patches.Ellipse((0,0),2,2,color='white')ax2.add_patch(e2)# subplot for colorbarax3 = fig.add_subplot(1,1,1)ax3.axis('off')cbar = plt.colorbar(ax=ax2)plt.show()
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 769 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號