web-dev-qa-db-ja.com

matplotlibの散布図

これは私の最初のmatplotlibプログラムなので、無知でごめんなさい。

文字列の配列が2つあります。たとえば、A = ['test1','test2']B = ['test3','test4']です。 A要素とB要素の間に相関関係がある場合、それらのcorr値は1に設定されます。

        test1 | test2
test3 |   1   |   0

test4 |   0   |   1

ここで、X軸がAの要素、Y軸がBの要素になる散布図を描き、相関値が1の場合、それは散布図でマークされます。どうやってするか?

24
bray

たぶんこのようなもの:

import matplotlib.pyplot
import pylab

x = [1,2,3,4]
y = [3,4,8,6]

matplotlib.pyplot.scatter(x,y)

matplotlib.pyplot.show()

編集:

今あなたを正しく理解しているかどうか見てみましょう:

あなたが持っている:

       test1 | test2 | test3
test3 |   1   |   0  |  1

test4 |   0   |   1  |  0

test5 |   1   |   1  |  0

ここで、値1がドットで表されるように、散布図で上記の値を表します。

結果が2次元リストに保存されているとしましょう:

results = [[1, 0, 1], [0, 1, 0], [1, 1, 0]]

それらを2つの変数に変換して、プロットできるようにします。

そして、私はこのコードがあなたが探しているものをあなたに与えると信じています:

import matplotlib
import pylab


results = [[1, 0, 1], [0, 1, 0], [1, 1, 0]]

x = []
y = []

for ind_1, sublist in enumerate(results):
    for ind_2, ele in enumerate(sublist):
        if ele == 1:
            x.append(ind_1)
            y.append(ind_2)       


matplotlib.pyplot.scatter(x,y)

matplotlib.pyplot.show()

pylabをインポートする必要があることに注意してください。そうすれば、軸ラベルをいじることができます。また、これは回避策のように感じられ、これを行う直接的な方法があるかもしれません(おそらくあります)。

74
Akavall