반응형
arrow_params = {'length_includes_head': True, 'shape': 'right'}#,
# 'head_starts_at_zero': True}
plt.arrow(x, y, dx, dy, alpha = .3, label = lb_road[rr], overhang = .2,
ec = None, color = None, fc = cmap[rr%100], linewidth=0,
width = .0003, head_width=.001, head_length=.001, **arrow_params)
figure는 figsize=(20,20) 기반으로 했을 때 width, head_width, head_length가 저정도가 적절하다.
plot과는 다르게 arrow는 patch기반이기 때문에 하나씩 그려줘야 한다. array로 여러개 그리기가 안됨.
arrow params
- overhang: head의 패인 정도. 기본 삼각형이 0 (디폴트)이고, +가 될수록 골격만 있는 화살표 모양 (->)에 가까워지고 -가 될수록 다이아몬드가 된다. 1일 때가 완벽한 ->이 된다.
- width, head_width, head_length는 비율을 보는게 좋다. figure size에 따라 달라질 수 있기 때문 편하게 사용하기 위해선 그에 따른 scale 변수를 사용하는 것이 유용하다.
- length_includes_head: head의 크기를 dx, dy에 포함하는지.
- shape: 삼각형의 한쪽만 그릴건지, 전체를 그릴껀지 ('full', 'left', 'right')
- head_starts_at_zero: length_includes_head:와 비슷하게 헤드의 중심이 끝점이 아니라 헤드가 끝점부터 시작하는지.
대략 이정도면 arrow를 그리는데 어려움은 없지 않을까?
반응형
'Programing Language > Python' 카테고리의 다른 글
[visualization]netCDF 관련 지구 시각화 (2) | 2020.06.02 |
---|---|
[plot]LineCollection: edges(끈킨 선 여러개)를 빨리 그릴 때!? (0) | 2020.05.12 |
[plot]gridspec: subplots 업그레이드 버전 (0) | 2020.04.16 |
[plot]scatter legend: Automated legend creation (0) | 2020.04.16 |
[plot] geopandas: geo.json plotting with matplotlib (0) | 2020.04.16 |