본문 바로가기
Python/Matplotlib

산포그래프(scatter plot)의 옵션(키워드인자) 상세사항 - matplotlib(16)

by 콩돌 2019. 5. 17.
반응형

파이썬 버전 3.7 기준

matplotlib 버전 3.0.3 기준



 산포그래프(scatter plot)의 키워드 인자 상세


본 포스팅에서는 scatter()함수 입력 키워드인자에 대한 상세 설명를 다룬다.

산포그래프의 기초적인 작섭법은 선행포스팅(링크)를 참고하도록 한다.



 scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)


위의 함수는 산포그래프를 matplotlib를 활용하여 산포그래프를 그릴 수 있게 하는 함수이다.

산포그래프 작성 시 정교한 컨트롤를 위해서 다양한 입력변수를 받으며 각 변수에 대해서 아래에 설명되어 있다.


 x, y

입력 형태: array_like, shape(n, )


설명

필수 입력 요소이다.

데이터의 위치(x, y)를 입력받으며 각 배열의 요소 수는 같아야한다.



 s

입력 형태: array_like, shape(n, )


설명

선택적으로 입력이 가능하다. 

배열이 입력될 경우에는 x, y 배열과 요소 수가 동일해야 한다. 

마커 사이즈는 points**2로 설정된다.

기본값은 rcParams['lines.markersize'] ** 2이다.



 c

입력 형태: color, sequence, color의 sequence


설명

선택적으로 입력이 가능하다. 

마커의 색을 설정해주기 위해 입력받는 키워드 인자로 다양한 형태로 입력이 가능하다.

  - 컬러를 나타내는 하나의 문자(열)(string)

  - n의 길이를 가지며 색을 열거한 시퀀스(sequence)

  - cmap과 norm을 사용하여 색을 맵핑한 n개의 시퀀스

   - 2차원 배열(이 경우 행에 RGB 혹은 RGBA값이 들어간다.)


참고사항

  c에는 RGB 혹은 RGBA 시퀀스가 되어서는 안되는데, 이는 색을 맵핑하기 위한 값의 배열과 구분이 되지 않기 때문이다.

  만약 사용자가 같은 RGB 혹은 RGBA 값을 명시하고 싶을 경우에는 하나의 행을 가지는 2차원 배열을 사용해야 한다. 

  그렇지 않은 경우 해당 값들은 x, y 변수와 매칭을 진행한다.


기본값은 None이며, 이경우에는 마커의 색은 colorfacecolor 혹은 facecolors 키워드 인자에 의해 결정되게 된다.

color, facecolor, facecolors와 같은 키워드 인자들 역시 None이거나 명시되지 않은 경우에 마커의 색은 rcParams 파일에 rcParams["axes.prop_cycle"]에 명시되어있는 사이클에 의해 색이 지정된다.



 marker

입력 형태MarkerStyle


설명

선택적으로 입력이 가능하다. 

마커의 모양을 입력받는 키워드 인자로 여러 마커의 형태는 선행포스팅(링크) 혹은 matplotlib홈페이지(링크)에 나와있으므로 참고할 수 있다.

marker는 클래스의 인스턴스거나 특정 마커의 문자약칭이될 수 있다.
기본값은 None으로, 이 경우 rcParams["scatter.marker"]로 설정된 값을 가져다 쓰는데 대부분 'o'으로 설정되어 있을 것이다. 


 cmap

입력 형태: Colormap


설명

선택적으로 입력이 가능하다. 

Colormap 인스턴스 혹은 등록된 colormap의 이름을 쓴다. 

cmap 키워드 인자는 c에 입력된 배열이 float일 경우에만 사용되어진다.

기본값은 None으로 이 경우 rcimage.cmap 값을 입력으로 쓴다.



 norm

입력 형태: Normalize


설명

선택적으로 입력이 가능하다. 

Normalize 인스턴스는 밝기 데이터를 0, 1로 스케일링 하는데 사용되어진다. 
norm 키워드 인자는 cmap과 마찬가지로 c에 입력된 배열이 float일 경우에만 사용되어진다.

기본값은 None으로 이 경우 colors.Normalize 값을 입력으로 쓴다.



 vmin, vmax

입력 형태: scalar


설명

선택적으로 입력이 가능하다. 

vmin과 vmax는 norm과 함께 밝기 데이터를 정규화하는데 사용되어진다.

기본 값은 None으로, 이 경우 색 배열의 최소값과 최대값을 각각 vmin과 vmax로 사용한다. 

만약 norm을 따로 입력하지 않는 다면 vmin과 vmax는 값을 입력하더라도 무시된다.



 alpha

입력 형태: scalar


설명

선택적으로 입력이 가능하다. 

alpha blending value을 입력받고 0에서 1사이의 값을 입력받는다.
쉽게 설명하면 투명도를 조정하는 키워드 인자이다.
0이면 해당 마커가 보이지 않고, 1일 경우에는 해당 마커가 투명하지 않게된다.



 linewidths

입력 형태: scalar or array_like


설명

선택적으로 입력이 가능하다. 

마커 테두리선(marker edges)의 굵기를 입력 받는 키워드 인자이다.
기본 값은 None으로, 이 경우 rcParams파일의 lines.linewidth값을 사용한다.



 edgecolors

입력 형태: color, sequence of color


설명

선택적으로 입력이 가능하다. 

마커 테두리선의 색을 설정하며 아래 값들이 입력 가능하다.
  - 'face': 마커를 채우는 면색과 동일한 색상
  - 'none': 선을 그리지 않는다.
  - matplotlib에서 제공하는 색상
기본값은 'face'로 이 경우 마커를 채우는 면색깔과 동일한 색을 사용한다.



 **kwargs

Collection 속성을 입력받아 사용할 수 있다.




참고사항

  모든 마스크가 결합되고 오직 마스크되지 않은 점들만 플롯될 경우에는, x, y, s, c는 마스크 배열(masked array)를 사용할 수 있다.기본적으로, 산포그래프에서는 x, y, s, c에는 1차원 배열을 입력받는다.  2차원 배열을 입력받을 경우 1차원 배열로 치환되게된다. 다만 c는 예외적인 경우로 1차원 배열로 변경 시 x, y, s의 사이즈와 매칭이 되는 경우에 한에서 변경을 수행하게 된다.


참고사항

위의 독립변수들에 대해 덧붙이자면, 이 함수는 데이터 키워드 인자를 받는 것이 가능하다. 
만약 위의 데이터 독립변수가 주어진다면, 아래의 독립변수는 data[<arg>]에 의해 대체될 수 있다. 
  ○ 모든 독립변수(혹은 키워드 인자)는 다음과 같은 이름을 따른다.
    ▷ 'c', 'color', 'edgecolors', 'facecolor', 'facecolors', 'linewidths', 's', 'x', 'y'
데이터로 전달된 오브젝트는 반드시 아이템액세스(item access, data[<arg>])와 멤버쉽테스트(membership test, 데이터 내부의 <arg>)를 지원해야한다.


 

 

 

 

 참고자료

  https://matplotlib.org/tutorials/introductory/pyplot.html#sphx-glr-tutorials-introductory-pyplot-py

  https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html#matplotlib.pyplot.scatter

 





반응형

댓글