2016-03-29 15 views
2

私は8つのサブプロットを示すプログラムを持っています。すべてのログロググラフは8つの異なるファイルからのデータです。すべてのサブプロットに同じ点を追加

私はすべてのデータを組み合わせ、平均を計算しました。今、私はすべてのグラフにプロットしたい特定のx座標とy座標を持つ単一の点を持っています。私はこれをやっていない、私のすべてのサブプロットはループの一部としてプロットし、私は最後まで(すべてのデータファイルが読み込まれたら)平均を計算しないので、この点をプロットする方法を見つける必要がある既存のサブプロット。私はこれをプロットする明白な(しかし、非効率的な)方法だろうと思った何をしようとした私のループの最後で

if plotnum in [1,2,3,4,5,6,7,8]: 
    plt.plot(np.log(100),np.log(mean_length),'ro') 

100は私のセットのx値とmean_lengthが私のセットのyの値であり、しかし、これは動作していません。

+0

をあなたは完全なコードまたはコードの大きな部分を貼り付けることができますか? – Alessandro

+0

[subplots](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplots)ieを使う方が簡単かもしれません。 'fig、axs = plt.subplots(...) 'のように、後で各軸にプロットを追加することができます。 – GWW

+0

「これは動作していません」(ほとんど何かを意味する可能性がある)というよりも、結果があなたが望んでいたものとどのように違うかについて、より具体的な方が良いでしょう。 「何も起こらない」、「私のすべてのプロットをただ一つの点で置き換える」、「余分な点は偶数番目の部分プロットにのみ表示されます」、「私のコンピュータは爆発する」などです。 –

答えて

0

あなたが持っている異なる軸をループする必要があります。

あなたは、グラフ生成コードを投稿していなかったので、私はいくつかを作るでしょう:

import matplotlib.pyplot as plt 
all_axes = [] 
for idx in range(1,10): 
    ax = plt.subplot(3, 3, idx) 
    ax.plot([1,2,3], [10, 30, 80]) 
    all_axes.append(ax) 

今、私たちは、グラフの束を持っている、とあなたはそれらのそれぞれに1個の点を含めたいです。これらの軸をループして、この点を追加してください!

for ax in all_axes: 
    ax.scatter([4.6], [20]) 

とグラフの更新にする:

plt.draw() 
+0

ありがとう!ループを使用してすべてのデータをサブプロット(面積と長さ)にプロットし、追加を使用して8つのデータファイルすべてから平均長を計算しました。その後、私の特定のXをプロットするために、この第二のループを使用し、yはすべてのグラフ 'mean_lengthは=ラウンド上の座標点(np.mean(LL)、3)の範囲内plotnumため plotnum = 1 (1,9): PLT .subplot(2,4、plotnum) plt.plot(np.log(100)、np.log(mean_length)、 'ro') ' – Rcoder