2017-09-20 7 views
2

私はこのような図を作ろうとしています。プロットの行列は、それぞれ数値行列の視覚化です。複数のmatshow()結果を1つのFigureに入れるには?

enter image description here

私は、コードは以下のようになるはずと思った:

PyPlot

figure() 
for i in 1:100 
    subplot(10, 10, i) 
    matshow(rand(10, 10)) 
end 

を使用してでも、プロットは独立して新しいウィンドウで飛び出して、代わりのの別々の部分になり同じ数字。私は何を間違えたのですか?

お時間をいただきありがとうございます。

+0

今日も尋ねたあなたはこれと同様の質問への答えに興味がある可能性があります(ただしためのプロットではなくPyPlotより):https://stackoverflow.com/questions/46335316/generating-subplots-of-heatmaps-in-julia-lang –

答えて

3

免責事項:私はJuliaの経験が全くありません。だから私が気づいていない以下のことについていくつかの注意点があるかもしれません。 matshow documentationから

matplotlib.pyplot.matshow(A, fignum=None, **kw)
新しいフィギュアウィンドウで行列として配列を表示します。 [...]
fignum: [なし|整数| False]
デフォルトでは、matshow()は自動的な番号付けで新しいFigureウィンドウを作成します。 fignumが整数として与えられると、作成されたFigureはこのFigure番号を使用します。 matshow()はFigureのアスペクト比を配列の1つにしようとしているので、すでに存在するFigureの数を指定すると、奇妙なことが起こります。 fignumがFalseまたは0の場合、新しいFigureウィンドウは作成されません

つの可能なオプションは、このように次のようになります。

  • 使用fignum=false

    figure() 
    for i in 1:100 
        subplot(10, 10, i) 
        matshow(rand(10, 10), fignum=false) 
    end 
    
  • 使う代わりに、デフォルトでは、新しいフィギュアを作成しませんmatshowimshowためのimshow

    figure() 
    for i in 1:100 
        subplot(10, 10, i) 
        imshow(rand(10, 10)) 
    end 
    
2

pyplotを使用して私の好ましい方法は、あなたが使用したいサブプロットどの推測「魔法」を使用しないようです。したがって、私は通常、このような何かをするだろう:

figure() 
for i in 1:100 
    ax = subplot(10, 10, i) # assign ax to that subplot 
    ax[:matshow](rand(10, 10)) # call plot method on that specific subplot 
end 

またはそれ以上の柔軟性のためにあなたが行うことができますが:

f,axs=subplots(10,10)   # create all the subplots at the start 
for ax in axs     # instead use `for (i,ax) enumerate(axs)` if you need the index) 
    ax[:matshow](rand(10,10)) # plot on each iteration 
end 
関連する問題