plt annotation하기
그림에 주석을 달아 봅시다.
-
histogram, scatter plot 등에서 파워포인트처럼 설명을 달아보고 싶을 때가 있습니다.
plt.text
: 그냥 텍스트를 좌표 상에 올리는 식인데,bbox
argument를 함께 넘겨서, 글상자를 만들어줄 수도 있고
plt.annotate
: 텍스트를 화살표와 함께 넘겨주는 형시인데,arrowprops
argument를 함께 넘겨서 화살표를 함께 만들어줄 수도 있습니다.
- 아래는 각각을 대충 만들어본 결과물입니다.
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
sample_size = 1000
x = list(np.random.normal(0, 1, sample_size))+[5]
y = list(np.random.normal(0, 1, sample_size))+[5]
plt.figure(figsize=(12, 6))
#plt.scatter(x, y, alpha=0.5)
plt.xlim(min(x), max(x)+3)
plt.ylim(min(y), max(y)+3)
plt.text(5, 5, s='outlier', fontsize=20, fontweight='bold')
"""
- what is the shrink meaning?
"""
plt.annotate('annotate with bbox and arrow', xy=(5, 5), xytext=(-3, 6), fontsize=30,
bbox=dict(boxstyle='square', color='grey'),
arrowprops=dict(facecolor='black')
)
plt.annotate('annotate with arrow', xy=(5, 5), xytext=(2, 4), fontsize=30,
arrowprops=dict(facecolor='black')
)
plt.text( 5, 0, 'text with bbox', bbox=dict(boxstyle='square', color='grey'))
plt.text( 4, -2, 'text with round4 bbox', fontsize=30, bbox=dict(boxstyle='round4', color='grey'))
plt.savefig('../../assets/images/markdown_img/180615_1652_annotation_with_bbox_and_arrow.svg')
plt.show()
wrap-up
- histogram, scatter에서 개별 좌표, 바에 대해서 설명을 다는 것이 좋을 때가 있다.
- 이 블로그에서는 latex를 이용해서 annotation하는 방법도 함께 알려주고 있는데, 지금 내가 당장 이것이 필요한건 아니니까 넘어간다 하하핫.
댓글남기기