본문 바로가기
데이터 분석/시각화

[Graphviz] Dot graph(그래프)를 이미지로 저장하기 (feat. render)

by 부자 꽁냥이 2022. 9. 18.

안녕하세요~ 꽁냥이에요. Graphviz는 구조화된 데이터(트리, 네트워크 등)를 시각화해주는 라이브러리입니다.

 

Graphviz의 결과는 dot graph라는 형식으로 저장되는데요. 이번 포스팅에서는 dot graph를 이미지로 저장하는 방법을 알아보겠습니다. 굉장히 쉽습니다.


   Dot Graph 이미지로 저장하기 : render

먼저 시각화할 재료를 만들어야합니다. 꽁냥이는 의사결정 나무를 학습하고 최종 결과 트리를 dot graph로 저장했습니다.

 

import pandas as pd
import graphviz
import warnings
warnings.filterwarnings('ignore')

from sklearn.datasets import load_boston
from sklearn.tree import DecisionTreeRegressor, export_graphviz

boston = load_boston()

df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['MEDV'] = boston.target
X = df.drop('MEDV', axis=1)
y = df['MEDV']

reg = DecisionTreeRegressor(max_depth=3).fit(X, y)

## dot graph 생성
dot_data = export_graphviz(reg, out_file=None, 
                     feature_names=X.columns,  
                     filled=False, rounded=True,  
                     special_characters=False)
graph = graphviz.Source(dot_data)

 

Dot Graph를 이미지로 저장하기 위해서는 render 함수를 사용하면 됩니다. filename 인자에 파일 이름, directory는 저장할 디렉터리 그리고 format 인자에는 이미지 파일 형식을 지정해주면 됩니다.

 

## 이미지 저장
graph.render(filename='test_img', directory='./', format='png')

 

위 코드를 실행하면 아래와 같이 설정해준 디렉터리에 test_img.png가 생성된 것을 알 수 있습니다.

 

파일을 열어보면 의사결정나무가 잘 저장되어 있는 것을 알 수 있습니다.

test_img


댓글


맨 위로