파이썬 버전 3.7 기준
matplotlib 버전 3.0.3 기준
pyplot의 plot함수 입력변수와 선의 포맷팅 |
본 포스팅에서는 matplotlib.pyplot.plot()에 입력되는 구성요소와 선의 포맷 설정(마커, 색, 선모양 두께)에 대해 설명하도록 한다.
matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs) |
plot함수의 입력요소는 위와 같으며 자세한 내용은 아래에 설명한다.
*args |
*args에 입력되는 요소와 작성법은 전 포스팅(링크)에 설명되어 있으며 x, y, fmt이 입력된다.
x는 x축에 입력되는 데이터이며, y는 y축에 입력하는 데이터를 의미한다.
x나 fmt는 선택적으로 입력이 가능하지만 y는 반드시 입력되어야 한다.
두 데이터는 리스트나 튜플, numpy.array 등 배열과 유사한(array-like) 자료형을 입력받는다.
fmt는 선이나 마커의 포맷을 입력하는 란이며 문자열(string, str)을 입력 받는다. 자세한 내용은 아래에 설명하도록 한다.
scalex, scaley |
scalex와 scaley는 x와 y축의 스케일을 자동으로 조절하도록 설정하는 독립변수이다.
논리형(bool) 자료형이 입력되며, 기본값은 True이다.
이 값이 False이 입력될 경우 xlim(), ylim()등을 이용하여 스케일을 수동으로 설정해야한다.
data |
data는 딕셔너리, pandas의 DataFrame, Numpy의 Structured array와 같이 인덱싱이 가능한 오브젝트를 입력받는다.
data를 입력하는 순간 plot의 입력방법이 달라지는데 다음과 같다.
data 사용시 입력 형식)
plot('xlabel', 'ylabel', data=obj)
여기서 obj는 인덱싱이 가능한 오브젝트이며 'xlabel'은 입력된 obj에서 x축에 해당되는 문자열 인덱스이고, 'ylabel'은 obj에서 y축에 해당되는 문자열 인덱스이다.
*args와 마찬가지로 자세한 사용법은 전 포스팅(링크)에서 "라벨링된 데이터의 plot" 파트에 설명되어있다.
**kwargs |
**kwargs는 하나의 라인에 대해 속성(properties)를 입력으며, 선택적으로 입력된다.
선의 포맷을 설정하는대 사용되어지며 자세한 사항은 fmt와 마찬가지로 아래에서 다루도록 한다.
선과 마커의 포맷팅 |
위에서는 플롯에 입력요소에 대해 다루었다. 이 파트에서는 플롯의 포맷을 설정하는 법에 대해 다루도록 한다.
먼저 플롯을 출력하기 위한 입력요소와 포맷을 설정하기 위한 입력요소를 추리면 아래와 같다.
matplotlib.pyplot.plot(x, y, fmt, **kwargs)
여기서 fmt와 **kwargs가 선의 포맷을 설정하는 변수들이며 본 파트에서 설명한 내용들이다.
fmt |
fmt는 색깔, 마커의 종류, 선의 형태를 나타내는 문자열(str, string)을 입력받으며 형식은 아래와 같다.
fmt = '[color][marker][line]'
먼저 위에서 color는 색깔을 입력하는 곳이다.
색을 설정하기 위해 입력되는 문자와 해당하는 색은 다음표에 설명하였다.
문자열 |
색 |
'b' |
파란색(blue) |
'g' |
초록색(green) |
'r' |
빨간색(red) |
'c' |
청록색(cyan) |
'm' |
자주색(magenta) |
'y' |
노란색(yellow) |
'k' |
흑색(black) |
'w' |
백색(white) |
marker에는 마커 모양을 입력하며 아래와 같은 문자열을 입력함으로써 마커모양을 설정할 수 있다.
이곳(링크)과 이곳(링크) 역시 자세한 설명이 나와있다.
문자열 |
설명 |
|
문자열 |
설명 |
'.' |
점(point) |
|
's' |
사각형(squre) |
',' |
픽(pixel) |
|
'p' |
오각형(pentagon) |
'o' |
원(circle) |
|
'*' |
별모양(star) |
'v' |
역삼각형(triangle_down) |
|
'h' |
육각형1(hexagon1) |
'^' |
삼각형(triangle_up) |
|
'H' |
육각형2(hexagon2) |
'<' |
삼각형(왼쪽)(triangle_left) |
|
'+' |
더하기(plus) |
'>' |
삼각형(오른쪽)(triangle_right) |
|
'x' |
x모양(x) |
'1' |
삼각뿔(아래쪽)(tri_down) |
|
'D' |
다이아몬드(diamond) |
'2' |
삼각뿔(위쪽)(tri_up) |
|
'd' |
얇은다이아몬드(thin diamond) |
'3' | 삼각뿔(왼쪽)(tri_left) |
| '|' | 브이라인(vline) |
'4' | 삼각뿔(오른쪽)(tri_right) |
| '_' | 에이치라인(hline) |
line에는 선모양을 입력하며 아래와 같은 문자열을 입력함으로써 선모양을 설정할 수 있다.
문자열 | 설명 |
'-' | 실선(Solid line) |
'--' | 대시선(Dashed line) |
'-.' | 대시-점 선(Dash-dot line) |
':' | 점선(Dotted line) |
fmt입력 예제)
In[3]: plt.plot([1,2,3], [1,2,3], 'r.-')
In[4]: plt.plot([1,2,3], [1,2,3], 'mo-.')
**kwargs |
**kwargs는 하나의 라인에 대해 속성(properties)를 입력으며, 선택적으로 입력된다.
모든 속성에 대한 자세한 사항은 이곳(링크)에 있으므로 참고하면 되며, 본 포스팅에서는 몇 가지 주요 속성에 대해 설명한다.
속성 |
입력자료형 |
설명 |
label |
object |
라벨로 입력받는 변수를 문자열형(string, str)으로 치환하여 라벨을 세팅한다. |
linestyle |
str |
선스타일을 설정하며, fmt에서 line자리에 입력되는 문자열과 동일한 문자열을 입력받는다. 'solid', 'dashed', 'dashdot', 'dotted'로도 입력이 가능하다. |
linewidth |
float |
선의 두께를 설정한다. |
color |
str |
선의 색깔을 설정하며, fmt에서 color자리에 입력되는 문자열과 동일한 문자열을 입력받는다. 색을 지칭하는 영어단어(red, blue 등)으로도 입력이 가능하다. |
dashes |
sequence(floats) |
사용자가 직접 점선(dash line)을 조정할 수 있게 한다. 실수형의 시퀀스(리스트, 튜플 등)를 입력받으며 요소의 수는 반드시 짝수여야 한다. |
marker |
str |
마커스타일을 설정하며, fmt에서 market자리에 입력되는 문자열과 동일한 문자열을 입력받는다. |
markersize |
float |
마커의 크기를 설정한다. |
markevery |
None, int, (int, int), list[int], slice, float, (float, float) |
데이터에서 마커를 만들 샘플을 추출하도록한다. 예를들어, markevery=20이면 20번째 데이터마다 마커를 생성한다. int로 입력될 경우 입력되는 수에 대응하여 스킵을 하여 마커를 생선한다. float으로 입력될 경우 상대적인 거리에 따라 마커를 생성한다. |
visible |
bool |
입력되는 선 혹은 artist들을 보이게 할지 안할지 결정해주는 변수이다. True로 입력시 보이며, False로 입력시 보이지 않게된다. |
fillstyle | str | 마커를 채우는 방식을 설정한다. 'full', 'left', 'right', 'bottom', 'top', 'none'을 입력으로 받는다. |
속성 입력 예제)
In[3]: plt.plot([1,2,3], [1,2,3], linewidth=2, color='red')
In[4]: plt.plot(y, marker='o', markersize=10, markevery=5, fillstyle='top')
'Python > Matplotlib' 카테고리의 다른 글
축(axes,axis)의 포맷팅(눈금(틱,tick), 축제목(레이블,label)) - matplotlib(9) (0) | 2019.04.15 |
---|---|
축(axes,axis)의 포맷팅(범위, 스케일) - matplotlib(8) (1) | 2019.04.13 |
pyplot 개요와 그래프 작성 기초 - matplotlib(6) (0) | 2019.04.10 |
Matplotlib의 성능 개선 방법 - matplotlib(5) (0) | 2019.04.06 |
대화형 모드(interactive mode) - matplotlib(4) (0) | 2019.04.05 |
댓글