Python/Matplotlib
Matplotlib 그래프에 라벨 추가하기
webnautes
2022. 6. 19. 21:43
반응형
Matplotlib를 사용하여 그린 그래프에 라벨을 추가하는 방법입니다.
출처는 아래 링크입니다.
2022. 6. 19 최초작성
직선 그래프에 라벨 추가
직선 그래프에 파란색 원형 마커를 추가하고 y값을 라벨로 추가합니다.
import matplotlib.pyplot as plt import numpy as np # 10개의 x좌표와 y좌표를 생성합니다. xs = np.arange(0,10,1) ys = np.random.normal(loc=3, scale=0.4, size=len(xs)) # 'bo-'는 b: 파란색, o: 원형마커, -: solid lines plt.plot(xs,ys,'bo-') # xs와 ys로부터 하나씩 가져와서 묶은 후, 각각 x,y에 전달합니다. for x,y in zip(xs,ys): label = "{:.2f}".format(y) # y좌표를 소수점 이하 2자리까지를 문자열로 만듬. plt.annotate(label, # 출력할 텍스트, 여기에선 y좌표 (x,y), # 텍스트를 출력할 좌표 textcoords="offset points", # 텍스트 위치를 (x,y)로 부터의 오프셋 (offset_x, offset_y)로 지정 xytext=(0, 20), # (x, y)로 부터의 오프셋 (offset_x, offset_y), 여기에선 y 좌표로 +20 이동합니다. ha='center') # 수평방향으로 중앙정렬합니다. # 화면에 출력합니다. plt.show() |
막대 그래프에 라벨 추가
막대 그래프에 y값을 라벨로 추가합니다.
import matplotlib.pyplot as plt import numpy as np # 10개의 x좌표와 y좌표를 생성합니다. xs = np.arange(0,10,1) ys = np.random.normal(loc=3, scale=0.4, size=10) # 막대 그래프를 그립니다. plt.bar(xs,ys) # xs와 ys로부터 하나씩 가져와서 묶은 후, 각각 x,y에 전달합니다. for x,y in zip(xs,ys): label = "{:.2f}".format(y) # y좌표를 소수점 이하 2자리까지를 문자열로 만듬. plt.annotate(label, # 출력할 텍스트, 여기에선 y좌표 (x,y), # 텍스트를 출력할 좌표 textcoords="offset points", # 텍스트 위치를 (x,y)로 부터의 오프셋 (offset_x, offset_y)로 지정 xytext=(0, 5), # (x, y)로 부터의 오프셋 (offset_x, offset_y), 여기에선 y 좌표로 +20 이동합니다. ha='center') # 수평방향으로 중앙정렬합니다. # 화면에 출력합니다. plt.show() |
산점도 그래프에 라벨 추가
산점도 그래프에 (x,y)좌표를 추가합니다.
import matplotlib.pyplot as plt import numpy as np # 10개의 x좌표와 y좌표를 생성합니다. xs = np.random.randint( 0, 10, size=10) ys = np.random.randint(-5, 5, size=10) # 산점도 그래프를 그립니다. plt.scatter(xs,ys) # xs와 ys로부터 하나씩 가져와서 묶은 후, 각각 x,y에 전달합니다. for x,y in zip(xs,ys): label = f"({x},{y})" # x, y좌표를 문자열로 만듬. plt.annotate(label, # 출력할 텍스트, 여기에선 y좌표 (x,y), # 텍스트를 출력할 좌표 textcoords="offset points", # 텍스트 위치를 (x,y)로 부터의 오프셋 (offset_x, offset_y)로 지정 xytext=(0, 5), # (x, y)로 부터의 오프셋 (offset_x, offset_y), 여기에선 y 좌표로 +20 이동합니다. ha='center') # 수평방향으로 중앙정렬합니다. # 화면에 출력합니다. plt.show() |
반응형