2017-08-07 11 views
0

array1array2という2つのデータセットがあり、まったく同じ形状の(365, 180, 140)です。第1のアレイは降水値を有し、第2のアレイは大気中のダスト濃度値を有する。配列の最初の要素は曜日を表し、2番目と3番目の要素は経度と緯度を表します。同じ形状の2つのデータセット間のグラフの相関関係

この2つのデータセットの相関関係を散布図に示したいと思います。私は、x軸上の降水量の値と、y軸上のダスト濃度の値を持っています。基本的には、すべてのインデックスの値をarray1に置き、それをx座標として割り当て、対応するインデックスの値をarray2に置き、y値として割り当てます。誰も私がこれを達成する方法を知っていますか?事前にありがとうございます。

EDIT:「すべてのインデックス」の意味は次のとおりです。たとえば、array1[1, 1, 1]とし、ax座標として割り当ててarray2[1, 1, 1]とし、ay座標として割り当て、散布図にプロットします。プロット。私は[1, 2, 1][1, 3, 1][1, 4, 1]のようにプロットしたいと思います。

+0

はStackOverflowのへようこそ。良い質問を書く方法については、このガイドをご覧ください:https://codeblog.jonskeet.uk/2012/11/24/stack-overflow-question-checklist/ – Graham

+0

まず、Pythonの「配列」は[リスト、タプル、範囲](https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range)データセットはすべて3つの要素で構成され、変更されないため、[tuple](https://docs.python.org/3/library/stdtypes.html#tuples)が適しています。次に、すべての要素がゼロからインデックスされるので、「すべてのインデックス」に関する質問を明確にします。たとえば、 'prec =(1,2,3)'なら 'print(prec [0])'は '1'を返します。デカルトのどの要素をデカルト座標系でグラフ化するかははっきりしていません。 –

+0

@StevePiercy:私は自分の質問を編集しました。アドバイスをいただきありがとうございます。 –

答えて

0

array2の対応するエントリに対して、array1のすべてのエントリをプロットするように思えます。

matplotlibの中の散乱機能が自動的にn次元配列を平坦化するので、このようなものが動作するはずです:

import matplotlib.pyplot as mp 
mp.scatter(array1, array2) 

あなたはまた、より明示的なことや配列を自分で平らにできた(インデックスが保持されます):

mp.scatter(array1.flatten(), array2.flatten()) 

完全な実際の例を提供するために、これらの配列を作成し、それらをプロットするコードをいくつか示します。降水量はダスト濃度とノイズに負の相関があると仮定します。注:散布図はmatplotlibでレンダリングするのが非常に遅いため、365x180x140の寸法ではプロットに時間がかかることがあります。ここで

import matplotlib.pyplot as mp 
import numpy 

# specify dimensions 
ndays=30 
nlat=20 
nlon=40 

# create a random array (say "precipitation") with the dimensions above 
array1 = numpy.random.random((ndays,nlat,nlon)) 

# create another array negatively correlated with precipitation 
array2 = -1*array1 
# and add some noise to array2 
array2 += numpy.random.normal(loc=0, scale=0.5, size=array2.shape) 

mp.scatter(array1.flatten(), array2.flatten()) 
mp.xlabel('array1') 
mp.ylabel('array2') 

は、これが作成した図である。

enter image description here

関連する問題