plotly express는 Interactive graph를 한 줄로 쉽게 그릴 수 있다는 장점이 있다. 많은 부분을 보기 좋게 자동으로 해 주기 때문에, 크게 손 볼 일이 없다. 하지만 다른 사람에게 보여주기 위해서는 약간 다듬을 필요가 생긴다.
그래프를 수정하는 방법은 여러가지가 있다. 그 중 가장 편리한 방법은 그래프를 변수에 저장하고, update_layout함수를 호출하는 것이다. 오늘은 plotly express 그래프의 레이아웃을 변경하는 방법에 대해서 알아보도로 하겠다.
1. 데이터 준비하기
우선 update_layout을 알아보기 위해 간단한 그래프를 그려보았다. 싸이킷런 패키지를 이용해서 와인 관련된 데이터를 데이터프레임으로 만들었다.
import sklearn
import pandas as pd
temp=sklearn.datasets.load_wine()
df=pd.DataFrame(data=temp["data"],columns=temp["feature_names"])
df_target=pd.DataFrame({"target":temp["target"]})
df=pd.concat([df,df_target],1)
df["target"]=df["target"].astype(str)
plotly express를 이용해서 산점도를 그려보았다.
import plotly.express as px
px.scatter(data_frame=df,x="malic_acid",y="ash", color="target")
update_layout을 이용하면 타이틀과 X축, Y축을 변경할 수 있다. update_layout함수를 이용하는 방법은 2가지가 있다. 하나는 속성변수에 바로 접근하는 것이고, 다른 하나는 딕셔너리 자료형을 이용하는 것이다.
2. 타이틀, x축, y축 변경하기
딕셔너리 자료형을 이용해서 아래와 같이 그래프 제목을 변경하였다. 그 다음에 x축 항목값과 문자, 타이틀을 변경하였다. autorange속성을 이용해서 순서 변경도 가능하다.
g = px.scatter(data_frame=df,x="malic_acid",y="ash", color="target")
g.update_layout(title=dict({"text":"안녕하세요.","font_size":15}))
g.update_layout(xaxis=dict({"tickvals":[2,4,6],
"ticktext":["이","사","욱"],
"title":"x축",
"autorange":"reversed"}))
'이 속성들을 다 기억할 수 있을까?' 하는 생각이 든다. 그런데, 기억할 필요가 없다. 이상한 항목을 넣어서 에러를 내면, 에러 메시지에서 속성값 설명이 나온다.
3. 데이터 포인트 변경하기
데이터 포인트를 변경하기 위해서는 update_traces함수를 이용해서 변경한다. 아래와 같이 특정 포인트를 선택하고 색깔을 변경할 수 있다. 포인트를 선택하지 않으면, 모든 포인트의 색깔이 변경된다.
g.update_traces(marker={"color":"Black"},
selector={"name":"0"})
그 외에도 선그래프의 선스타일을 점선으로 변경하거나, 색깔의 투명도를 조정, 마커의 모양을 변경하는 일들도 가능하다.
그 외에도 update_xaxes, update_layout_images, update_annotations, update_shape 등의 함수가 있다. 위와 같이 딕셔너리 자료형으로 넣는 방법 외에 속성의 값을 바로 변경하는 방법도 있다.
fig.data[0].marker.line.width = 4
fig.data[0].marker.line.color = "black"
plotly express 그래프의 레이아웃을 변경하는 방법을 더 자세히 알고 싶다면, 아래 페이지를 참조해보자.
( 참조: https://plotly.com/python/creating-and-updating-figures/ )
오늘은 이렇게 plotly express에서 update_layout함수를 이용해서 그래프를 변경하는 방법에 대해서 알아보았다. 거의 모든 요소를 다 변경할 수 있어서, 원하는 그래프를 만들기에는 부족함이 없을 것이다.
'데이터 > 데이터 분석' 카테고리의 다른 글
파이썬 plotly 그래프 웹페이지, 블로그에 올리는 방법은?! (0) | 2022.04.28 |
---|---|
파이썬 그래프 그리기, 동적으로 움직이는 그래프 그리는 방법은?! (0) | 2022.04.27 |
파이썬 대화형 그래프 쉽게 그리기, plotly express 이용 방법은?! (0) | 2022.04.26 |
파이썬 판다스 데이터 프레임 만들기 5가지 방법과 추천방법은?! (0) | 2022.04.24 |
의료 데이터 수집 및 조회 가능한 사이트 알아보기 (0) | 2022.04.05 |
파이썬 판다스 groupby 여러개 기준으로 쉽게 요약하는 방법은?! (0) | 2022.04.04 |
파이썬 판다스 데이터프레임 출력, 모든 데이터 확인하는 3가지 방법 (0) | 2022.04.03 |
파이썬 히트맵 그리는 손쉬운 2가지 방법 (0) | 2022.03.28 |