2017-06-30 7 views
4

3回実行するforループにサブプロットを1セット(2プロット)作成し、3つのサブプロットを1つのメインフィギュアに収めることは可能ですか。これの全体的なポイントは、1つの図に6つのプロットを持つことができるようにすることですが、他のプロットの間にはスペースがあります。 1つの図に6つのプロットを持つ方法はわかっていますが、他のすべてのプロットではなく、各プロットの間にスペースを入れることしかできません。私の質問が意味をなさないことを願っている私が使用しているデータに関しては、これは私が今実践に使用しているかなり基本的なデータセットです。プロットの各ペアは同じx軸を共有するため、私はそれらの間にスペースを必要としません。複数のサブプロットを1つの図にフィッティングする

import matplotlib.pyplot as plt 

x1 = [0,1,2,3,4,5] 
y1 = [i*2 for i in x1] 
y2 = [i*3 for i in x1] 

x2 = [4,8,12,16,20] 
y3 = [i*5 for i in x2] 
y4 = [i*3 for i in x2] 

x3 = [0,1,2,3,4,5] 
y5 = [i*4 for i in x3] 
y6 = [i*7 for i in x3] 

fig = plt.figure(1,figsize=(5,5)) 

ax1 = plt.subplot(611) 
ax1.plot(x1,y1) 

ax2 = plt.subplot(612) 
ax2.plot(x1,y2) 

ax3 = plt.subplot(613) 
ax3.plot(x2,y3) 

ax4 = plt.subplot(614) 
ax4.plot(x2,y4) 

ax5 = plt.subplot(615) 
ax5.plot(x3,y5) 

ax6 = plt.subplot(616) 
ax6.plot(x3,y6) 

fig.subplots_adjust(hspace=0.5) 

plt.show() 

これは私が得るものです:

enter image description here

+0

あなたは、すべてのプロットの間にスペースを置くことしかできないと言います。これはコードをプロットしていることを示しています。あなたはあなたが使っているモジュールとこれまでに持っていたコードを*何かをプロットすることができますか? –

+0

@RoryDaulton私は基本的に最初の2つのプロットの間の水平スペースを0にし、次の2つのセットについては同じにします。しかし、私は各セットの間に水平なスペースが必要です。 –

+0

@RoryDaulton私はできることの写真を追加しました。これは各サブプロットの間にスペースを入れたものです。しかし、私が望むのは、他のすべてのサブプロット間のスペースです。プロットパッケージに関しては、希望の結果が得られれば何でもいいです。私はstackoverflowにかなり新しいので、私が望むものを正確に表示するために他のイメージを投稿することはできません。googleイメージが許可されているかわかりません。 –

答えて

3

あなたのコードでは、6つのサブプロットしてグラフを作成します。 8つのサブプロットを作成し、それらの2つを空のままにしておくと、追加のスペースが得られます。ここで私が使用したコードは、あなたのコードから若干変更されています。

import matplotlib.pyplot as plt 

x1 = [0,1,2,3,4,5] 
y1 = [i*2 for i in x1] 
y2 = [i*3 for i in x1] 

x2 = [4,8,12,16,20] 
y3 = [i*5 for i in x2] 
y4 = [i*3 for i in x2] 

x3 = [0,1,2,3,4,5] 
y5 = [i*4 for i in x3] 
y6 = [i*7 for i in x3] 

fig = plt.figure(1,figsize=(5,7)) 

ax1 = plt.subplot(811) 
ax1.plot(x1,y1) 

ax2 = plt.subplot(812) 
ax2.plot(x1,y2) 

ax3 = plt.subplot(814) 
ax3.plot(x2,y3) 

ax4 = plt.subplot(815) 
ax4.plot(x2,y4) 

ax5 = plt.subplot(817) 
ax5.plot(x3,y5) 

ax6 = plt.subplot(818) 
ax6.plot(x3,y6) 

fig.subplots_adjust(hspace=0.5) 

plt.show() 

私はこの結果を得る:

Eight subplots, 7 inches tall

私は余分なスペースに対応するために、7インチのフィギュアサイズの高さを増加しなければなりませんでした。それはあなたが欲しいものですか?

+0

これはまさに私が探しているものです。助けてくれてありがとう、そして私が以前に引き起こしたかもしれないどんな混乱に対しても、すみません。 –

関連する問題