2016-11-27 35 views
1

Ø上午试图找出如何放置另一个情节,立方体状的,在三个次要情节Matplotlib gridspec - 将另一立方情节旁边的几个次要情节

import matplotlib.pyplot as plt 
import matplotlib.gridspec as gridspec 
gs1 = gridspec.GridSpec(3,2) 
ax1 = plt.subplot(gs1[0, :]) 
ax2 = plt.subplot(gs1[1, :],sharex=ax1) 
ax3 = plt.subplot(gs1[2, :],sharex=ax1) 
plt.setp(ax1.get_xticklabels(), visible=False) 
plt.setp(ax2.get_xticklabels(), visible=False) 
plt.show() 

enter image description here 如何正确可我使用gridspec放置另一个横跨三行旁边的图表?

回答

2

你已经被细分为两列定义的gridspec适当的拆分。指定左轴使用的第一列(见下文的变化),并且被认为是“立方”(纵横比1)使用您的gridspec的右侧列中的轴。

import matplotlib.pyplot as plt 
import matplotlib.gridspec as gridspec 
gs1 = gridspec.GridSpec(3,2) 
ax1 = plt.subplot(gs1[0, 0]) 
ax2 = plt.subplot(gs1[1, 0],sharex=ax1) 
ax3 = plt.subplot(gs1[2, 0],sharex=ax1) 
ax4 = plt.subplot(gs1[:, 1]) # NEW 
ax4.set_aspect('equal', adjustable='box') # NEW 
plt.setp(ax1.get_xticklabels(), visible=False) 
plt.setp(ax2.get_xticklabels(), visible=False) 
plt.show() 

gridspec with two columns

或者,也可以定义一个第二gridspec并更新每个gridspec的(相对)位置,像这样:

import matplotlib.pyplot as plt 
import matplotlib.gridspec as gridspec 
gs1 = gridspec.GridSpec(3,2) 
gs1.update(left=0.05, right=0.48, wspace=0.05) 
ax1 = plt.subplot(gs1[0, :]) 
ax2 = plt.subplot(gs1[1, :],sharex=ax1) 
ax3 = plt.subplot(gs1[2, :],sharex=ax1) 

gs2 = gridspec.GridSpec(1, 1) 
gs2.update(left=0.55, right=0.98, hspace=0.05) 
ax4 = plt.subplot(gs2[0,0]) 
#ax4.set_aspect('equal', adjustable='box') 
plt.setp(ax1.get_xticklabels(), visible=False) 
plt.setp(ax2.get_xticklabels(), visible=False) 
plt.show() 

我评论的代码来获得相等的方面比例为ax4,突出显示默认情况下,它填充整个可用空间。

alternative gridspec