2017-11-23 1 views
0

データをプロットするフィギュアを制御する方法はありますか?下の例では、データを別々の2つの図(aとbブロックのコード)でプロットしていますが、これは正常に動作しています。しかし、私のデータが異なるように構成されているので、図1に戻ってプロットしたいと思いますが、figure = plt.figure(1)で指定したように、図1よりも最新の図にcブロックがプロットされています。私は間違っているのですか?サブプロットのメインフィギュアを制御する方法は?

import matplotlib.pyplot as plt 

#a-block 
figure = plt.figure(1) 
figure, axisArr = plt.subplots(4, 1, figsize=(8.27, 11.70), sharex=True) 
axisArr[0].plot(range(10), '-', color = 'red') 
axisArr[1].plot(range(20), ':', color = 'yellow') 
axisArr[0].plot(range(30), '.', color = 'blue') 

#b-block 
figure = plt.figure(2) 
figure, axisArr = plt.subplots(4, 1, figsize=(8.27, 11.70), sharex=True) 
axisArr[0].plot(range(10), '-', color = 'red') 
axisArr[1].plot(range(20), ':', color = 'black') 
axisArr[0].plot(range(30), '.', color = 'blue') 

#c-block 
figure = plt.figure(1) 
axisArr[2].plot(range(10), '-', color = 'red') 
axisArr[3].plot(range(10), '-', color = 'green') 

plt.show() 

答えて

1

異なる名前と軸の配列を同じ名前で指定することは悪い考えです。これにより、プロットしたい軸へのハンドルが緩められます。代わりに、異なる名前を使用してください。

import matplotlib.pyplot as plt 

figure1, axisArr1 = plt.subplots(4, 1, figsize=(8.27, 11.70), sharex=True) 
axisArr1[0].plot(range(10), '-', color = 'red') 
axisArr1[1].plot(range(20), ':', color = 'yellow') 
axisArr1[0].plot(range(30), '.', color = 'blue') 


figure2, axisArr2 = plt.subplots(4, 1, figsize=(8.27, 11.70), sharex=True) 
axisArr2[0].plot(range(10), '-', color = 'red') 
axisArr2[1].plot(range(20), ':', color = 'black') 
axisArr2[0].plot(range(30), '.', color = 'blue') 


axisArr1[2].plot(range(10), '-', color = 'red') 
axisArr1[3].plot(range(10), '-', color = 'green') 

plt.show() 
+0

ありがとうございます!私はプロットするために何百ものチャートを持っていましたので、私はそれらをすべてループしていて、異なる変数名を与えることはできません。異なる軸配列名などを与えるよりも回避策がありますか?ありがとう! – Curtis

+0

問題の内容が不明です。変数に名前を付けることは常に可能です。たぶんあなたはいくつかのリストにハンドルを保存したいですか? – ImportanceOfBeingErnest

+0

問題は、データが整理されていない(巨大なデータベースから引っ張られている)ことです。私は指示するつもりでした。図1のサブプロット3でABデータプロットを見つけた場合、図2-subplot1にBAデータプロットがありますが、ABのインスタンスがある場合は再び図1-サブプロット3などに戻ります。と 'axisArr'はインスタンスであり、そのインスタンスへの以前の参照で使用されたのと同じ名前が失われてしまいます。少なくとも私は問題が何であるかを知っています。時間をとってくれてありがとう! – Curtis

関連する問題