본문 바로가기
프로그래밍/SAS

004. [proc sgplot] SAS sgplot 여러가지 옵션 (2): 색상

by life_is_egg 2021. 8. 21.
반응형

 목차 

1. 그래프 색상 바꾸기

2. 그래프 선 색상 바꾸기


 

라벨링, 글씨 크기, box plot의 box 크기 조절, 그래프 크기 바꾸는 방법과 관련해서는 이전 게시물을 참고하면 된다!

egg-is-life.tistory.com/4

 

003. [proc sgplot] SAS sgplot 여러가지 옵션 (1)

 목차 1. 제목, x축, y축 라벨링 2. 글씨 크기 조절 3. Box plot의 box 넓이 조절 4. 그래프 크기 조절 1. 제목, x축, y축 라벨링 (Title & legend & xaxis & yaxis labelling) sas를 이용하여 여러 그래프들을..

egg-is-life.tistory.com

 


0.  데이터 불러오기

SAS sgplot의 옵션을 알아보기 위해 kaggle에서 얻은 데이터를 사용했다.

vgsales_300rank.csv
0.02MB


불러온 데이터셋

 

kaggle 말고도 SAS에 내장 데이터가 있으므로 그걸 사용해도 괜찮을 것 같다.

data = sashelp.(data name)

 

원하는 색상 이름은 어떻게 넣을 수 있을까?

 

아래의 파일은 sas에서 제공한 색상표 파일이다.

sas color.pdf
0.44MB

이 색상표를 사용해도 되고

네이버나 구글 등에서 색상 코드표를 검색해서 사용해도 좋다.

 

만약 네이버에서 색상 코드표를 검색하면 아래 사진처럼 나올 것이다.

색상 코드표를 보면 다양한 색상 코드가 있다(RGB, HSB등).

이 가운데 SAS에서 사용할 색상코드는 #으로 시작하는 코드이다.

 


1. 그래프 색상 바꾸기

SAS로 그래프를 그리다보면, 색상이 마음에 안 들 때가 많다.

파이썬이나 R을 사용하면 다양한 디자인을 사용해서 시각화하기 좋지만,

SAS로 그래프를 그려야하는 경우도 있다.

 

이럴 때 사용하기 좋은 코드이다!

proc sgplot data=test;
	vbox year/ category=genre boxwidth=0.6;
	title "Genre & Year";
	xaxis label='Game genre' labelattrs=(size=13pt weight=bold) valueattrs=(size=11pt weight=bold);
	yaxis label='Release year' labelattrs=(size=13pt weight=bold) valueattrs=(size=11pt weight=bold);
run;

box의 넓이 조정하고, 제목과 x, y축 라벨링을 해주었다.

이 부분에 대한 자세한 설명은 목차 아래 부분에 적어둔 링크를 통해 확인할 수 있다.

 

이제 간단한 코드를 추가해서 box의 색상을 바꿀 수 있다.

 

색깔을 바꾸는 방법은 다양하지만

오늘은 간단하게 '그래프의 스타일을 바꿔줘(styleattrs)'라는 코드를 넣어줄 것이다.

SAS 홈페이지에 들어가면 styleattrs에 대한 더 많은 옵션들이 적혀있다.

 


SAS 색상 입력 규칙

색 이름을 입력할 때의 위의 규칙을 따라야 한다.

색상코드표를 검색하면 나오는 #으로 시작하는 코드를 사용할 것이다.

색상 코드표의 RGB를 사용할 경우 #을 지우고, 코드 앞에 'CX'를 붙여야 한다.


색상을 바꾸기 위해서는 'datacolors'라는 옵션을 사용할 것이다.

'datacolors=(color color ... );' 을 입력하면 색상이 바뀐다.

 

유의해야 할 점은 아래 그래프처럼 그룹 형식으로 묶이지 않은 데이터의 경우

'group=category variable' group 코드에 범주형 변수를 적어야 한다.

 

[색상 이름을 입력한 경우]

proc sgplot data=test;
styleattrs 
	datacolors=(red green blue yellow pink black);
	vbox year/ category=genre group=genre boxwidth=0.6;
	title "Genre & Year";
	xaxis label='Game genre' labelattrs=(size=13pt weight=bold) valueattrs=(size=11pt weight=bold);
	yaxis label='Release year' labelattrs=(size=13pt weight=bold) valueattrs=(size=11pt weight=bold);
run;

 

[RGB 코드표를 입력한 경우] 

proc sgplot data=test;
styleattrs 
	datacolors=(cxD1E5C7 cx80BF88 cx5D8C64 cx16A629 cx388C4C cx185920);
	vbox year/ category=genre group=genre boxwidth=0.6;
	title "Genre & Year";
	xaxis label='Game genre' values=('Sports' 'Racing' 'Puzzle' 'Action' 'Adventure' 'Strategy') labelattrs=(size=13pt weight=bold) valueattrs=(size=11pt weight=bold);
	yaxis label='Release year' labelattrs=(size=13pt weight=bold) valueattrs=(size=11pt weight=bold);
run;


2. 그래프 선 색상 바꾸기

위의 그래프를 보면, 그래프의 박스 색은 바뀌었지만 선 색은 여전히 sas의 defalut 값이다.

그래프의 선 색깔도 styleattrs를 사용하여 바꿀 수 있다.

 

이번에는 datacontrastcolors를 사용할 것이다.

동일하게 색상표 규칙에 맞게 'datacontrastcolors=color' 여기에 색을 적으면 된다.

proc sgplot data=test;
styleattrs 
	datacolors=(cxD1E5C7 cx80BF88 cx5D8C64 cx16A629 cx388C4C cx185920)
	datacontrastcolors=(cx0A260E);
	vbox year/ category=genre group=genre boxwidth=0.6;
	title "Genre & Year";
	xaxis label='Game genre' values=('Sports' 'Racing' 'Puzzle' 'Action' 'Adventure' 'Strategy') labelattrs=(size=13pt weight=bold) valueattrs=(size=11pt weight=bold);
	yaxis label='Release year' labelattrs=(size=13pt weight=bold) valueattrs=(size=11pt weight=bold);
run;

 

이전의 그래프와 비교해서 어떻게 변했는지 살펴보고 끝낼 것이다.

 

 

 

 

- SAS Enterprise Guide 7.1 버전에서 작성된 글입니다.

반응형

댓글