2016-05-24 24 views
0

私はサブプロットの5x4グリッドを作成しようとしている、との例を見てから、最善の方法であると私には思える:図で10個以上のサブプロットを作る方法は?

サブプロット(22)の最初の2つの数字はそれがあることを示している
import matplotlib.pyplot as plt 
plt.figure() 
plt.subplot(221) 

2x2のグリッド、3番目の数字は4つのうちどれが作成されているかを示します。しかし、私はこれをしようとしたとき、私はまで行かなければならなかった:

plt.subplot(5420) 

と私はエラーを得た:

ValueError: Integer subplot specification must be a three digit number. Not 4 

は、だから、あなたはより多くのその10個のサブプロットを作ることができないわけない、または方法がありますそれがどういうふうに誤解されていますか?

ありがとうございます。

+2

カンマを使用してください: 'plt.subplot(5,4,20)'。この動作は[documentation](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplot)で参照できます。 – wflynny

+0

関連性の低い質問ですが:https://stackoverflow.com/questions/35510155/matplotlib-subplot – wflynny

答えて

5

あなたはおそらくGridSpecを探しています。グリッドのサイズ(5,4)と各プロットの位置(行= 0、列= 2、つまり-0,2)を指定できます。

gridspec matplotlib example

あなたがフルグリッドを作るためにネストされたループを構築する必要があります:この、その結果、

import matplotlib.pyplot as plt 

plt.figure(0) 
ax1 = plt.subplot2grid((5,4), (0,0)) 
ax2 = plt.subplot2grid((5,4), (1,1)) 
ax3 = plt.subplot2grid((5,4), (2, 2)) 
ax4 = plt.subplot2grid((5,4), (3, 3)) 
ax5 = plt.subplot2grid((5,4), (4, 0)) 
plt.show() 

次の例を確認してください

import matplotlib.pyplot as plt 

plt.figure(0) 
for i in range(5): 
    for j in range(4): 
     plt.subplot2grid((5,4), (i,j)) 
plt.show() 

、あなたが得ますよこれは:

full 5x4 grid in gridspec matplotlib

プロットは(あなたが作成した軸から直接それを呼び出す)任意のサブプロット内と同じように動作します:

import matplotlib.pyplot as plt 
import numpy as np 

plt.figure(0) 
plots = [] 
for i in range(5): 
    for j in range(4): 
     ax = plt.subplot2grid((5,4), (i,j)) 
     ax.scatter(range(20),range(20)+np.random.randint(-5,5,20)) 
plt.show() 

、この結果として:あなた

multiple scatterplots in gridspec

お知らせプロットごとに異なるサイズを提供することができます(プロットごとに列数と行数が記載されています)。

import matplotlib.pyplot as plt 

plt.figure(0) 
ax1 = plt.subplot2grid((3,3), (0,0), colspan=3) 
ax2 = plt.subplot2grid((3,3), (1,0), colspan=2) 
ax3 = plt.subplot2grid((3,3), (1, 2), rowspan=2) 
ax4 = plt.subplot2grid((3,3), (2, 0)) 
ax5 = plt.subplot2grid((3,3), (2, 1)) 
plt.show() 
したがって、210

、:私はあなたにも他のものの中からラベルを削除する例があります初めに与えたリンクで

different sizes for each plot in gridspec

関連する問題