2012-04-26 6 views
20

이것은 내 첫 번째 matplotlib 프로그램입니다. 내 무지 때문에 죄송합니다.matplotlib의 산점도

두 개의 문자열 배열이 있습니다. 예 : A = ['test1','test2']B = ['test3','test4'] AB 요소 사이에 상관 관계가있는 경우 corr 값은 1으로 설정됩니다.

 test1 | test2 
test3 | 1 | 0 

test4 | 0 | 1 

지금, 내 X 축 A의 요소가 될 것입니다 분산도를 그리려는, Y 축은 B의 요소가 될 것이며, 상관 값이 1 경우, 그것은 흩어져 음모에 표시됩니다. 그렇게하는 방법?

+5

[무엇을 시도해 봤습니까?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) –

+1

질문에 답변했지만 다시 읽었습니다. 그것을 이해하지 못했습니다. A와 B의 요소는 실제로 문자열입니까? 문자열의 상관 관계를 테스트하는 방법은 무엇입니까? 수치 값이라면 상관 관계를 측정 할 수 있습니다. 귀하의 예제에서, 그것은 'test1'과 'test2'목록을 보인다. 그러나 그렇다면 정확하게 당신이 산산이 음모를 원하는 것이 무엇인지 분명하지 않습니다. 유용 할 경우를 대비하여 내 답변을 남겨 두겠다.하지만 설명을 해 준다면 도움이 될 것이다. – Akavall

+0

안녕하세요, A와 B의 예 요소는 실제로 두 개의 파일 이름을 나타내는 문자열입니다. 나는 어떤 논리에 기초하여 다른 프로그램으로부터 상관 값을 생성했다. – bray

답변

68
이 같은

아마 뭔가 :

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-D 목록에 저장되어 있다고 가정 해 봅시다 :

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

우리는 우리가 그들을 플롯 할 수 있도록 두 개의 변수로 변환하고자합니다.

그리고이 코드는 당신이 찾고있는 무엇을 줄 것으로 판단 : 나는 pylab를 가져올 필요합니까, 당신은 축 레이블 함께 놀러있을 것

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() 

알 수 있습니다. 또한이 작업은 주위의 작업처럼 느껴지며이를 수행하는 직접적인 방법이있을 수 있습니다.