matplotlib에서 (x, y) 좌표 리스트 표시
나는 짝의 목록을 가지고 있습니다.(a, b)
제가 계획하고 싶은 것은matplotlib
파이썬에서 실제 x-y 좌표입니다.현재 목록의 인덱스가 x 좌표를 제공하는 두 개의 그래프를 만들고 있으며, 첫 번째 그림의 y 값은a
쌍의 s와 두 번째 그림의 y 값은b
쌍쌍이
제 데이터는 다음과 같습니다.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)
이 쌍을 x-y 좌표로 플롯하기 위해 matplotlib을 어떻게 얻을 수 있습니까?
샘플 데이터
# sample data
li = list(zip(range(1, 14), range(14, 27)))
li → [(1, 14), (2, 15), (3, 16), (4, 17), (5, 18), (6, 19), (7, 20), (8, 21), (9, 22), (10, 23), (11, 24), (12, 25), (13, 26)]
잘못된 그림
plt.plot(li)
plt.title('Incorrect Plot:\nEach index of the tuple plotted as separate lines')
원하는 그림
이렇게 하면 올바른 플롯이 생성되지만, 많은 줄의 코드가 압축 풀기에 사용됩니다.li
여러 개의 목록 이해가 아니라 코드 한 줄로 압축을 풀고 플롯을 해야 합니다.
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
plt.title('Correct Plot:\nBut uses to many lines to unpack li')
정해진li
질문:
li = list(zip(range(1, 14), range(14, 27)))
쌍의 데이터를 목록으로 압축 해제하려면 다음을 사용합니다.
x, y = zip(*li)
x → (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
y → (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
원라이너는 압축 풀기 연산자(*)를 사용하여 다음을 위한 튜플 목록을 풉니다.zip
그리고 포장을 풉니다.zip
개체를 플롯 API로 이동합니다.
plt.scatter(*zip(*li))
plt.plot(*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()
그러면 목록의 모든 쌍을 연결하는 선이 목록의 시작부터 끝까지 데카르트 평면에 점으로 표시됩니다.이것이 당신이 원했던 것이기를 바랍니다.
언급URL : https://stackoverflow.com/questions/21519203/plotting-a-list-of-x-y-coordinates-in-matplotlib
'programing' 카테고리의 다른 글
젠킨스에서 작업을 복제하려면 어떻게 해야 합니까? (0) | 2023.05.22 |
---|---|
리눅스에서 bash 스크립트의 GUI 메시지 상자를 표시하는 방법은 무엇입니까? (0) | 2023.05.22 |
사용자 경고: lzma 모듈을 가져올 수 없습니다.설치된 Python이 불완전합니다. (0) | 2023.05.22 |
이클립스: 메이븐 검색 종속성이 작동하지 않습니다. (0) | 2023.05.22 |
'보호됨'과 '보호됨 내부'의 차이점은 무엇입니까? (0) | 2023.05.22 |