[python] 파이썬 matplotlib에서 (x, y) 좌표 목록 플로팅

파이썬에서 실제 xy 좌표로 (a, b)플롯하고 싶은 쌍 목록이 matplotlib있습니다. 현재 목록의 인덱스가 x 좌표를 제공하고 첫 번째 플롯의 y 값이 a쌍 의 s이고 두 번째 플롯의 y 값이 b쌍 의 s 인 두 개의 플롯 을 만들고 있습니다.

명확히하기 위해 내 데이터는 다음과 같습니다. 잘못된 li = [(a,b), (c,d), ... , (t, u)]
호출을 plt.plot()한 줄로 작성하고 싶습니다 . 한 줄짜리가 필요하지 않다면 간단하게 할 수 있습니다.

xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)

이 쌍을 xy 좌표로 플로팅하기 위해 matplotlib를 어떻게 얻을 수 있습니까?



답변

이 예 :

import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)

plt.scatter(x, y)
plt.show()

다음을 생성합니다.

여기에 이미지 설명 입력

쌍에서 목록으로 데이터를 압축 해제하려면 다음을 사용하십시오 zip.

x, y = zip(*li)

그래서 한 줄짜리 :

plt.scatter(*zip(*li))


답변

numpy 배열이 있으면 다음을 수행 할 수 있습니다.

import numpy as np
from matplotlib import pyplot as plt

data = np.array([
    [1, 2],
    [2, 3],
    [3, 6],
])
x, y = data.T
plt.scatter(x,y)
plt.show()


답변

목록의 모든 점을 연결하는 단일 선을 플로팅하려는 경우

plt . plot ( li [ : ] )

plt . show ( )

이것은 목록의 시작부터 끝까지 데카르트 평면의 점으로 목록의 모든 쌍을 연결하는 선을 그립니다. 이것이 당신이 원했던 것이기를 바랍니다.


답변