작성일자 : 2024-10-10
Ver 0.1.1
참고 사이트 : wiki docs
Plotly에서 그래프를 그리는 가장 보편적인 방법은 아래 그림과 같이 기초 그래프를 생성 후 다양한 방법으로 그래프를 업데이트하는 2단계를 거치는 방법이다.
이번 포스팅에서는 2번째 단계인 그래프를 업데이트 하는 5가지의 함수 기능에 대해 설명하겠다.
앞으로 진행 될 Plotly 기본 문법 및 여러 그래프들은 대부분 앞으로 소개 할 5개의 함수를 활용한 Plotly 그래프 튜닝 과정이라고 볼 수 있다.
Keyword : Plotly update_layout, Plotly add_trace, Plotly update_traces, Plotly update_xaxes, Plotly update_yaxes
add_trace()
fig.add_trace(추가할 Trace 입력)
add_trace() 함수를 활용하면 Figure에 새로운 Trace를 추가 가능하다. ex) go.Scatter, go.Bar...등등
04-09.Plotly 여러개의 그래프 겹쳐 그리기 에서 add_trace() 를 활용한 다양한 그래프 추가 방법에 대해 다룰 설명할 예정이다.
예제 1) 빈 Figure에 Trace 추가하기
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Bar(x=[1,2,3], y = [1,3,2]))
fig.show()
예제 2) 이미 Trace가 있는 Figure에 Trace 추가하여 겹쳐 그리기
import plotly.express as px
# 데이터 불러오기
df = px.data.iris()
# express를 활용한 scatter plot 생성
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",
title="Using The add_trace() method With A Plotly Express Figure")
fig.add_trace(
go.Scatter(
x=[2, 4],
y=[4, 8],
mode="lines",
line=go.scatter.Line(color="gray"),
showlegend=False)
)
fig.show()
update_trace()
fig.update_traces(업데이트 내용)
update_trace() 함수를 사용하면 이미 생성된 trace의 type, 색, 스타일, 템플릿 등 추가 편집이 가능하다.
물론 처음 Trace를 생성할 때 스타일 지정을 해서 생성이 가능하지만 update_trace 를 활용하면 한번에 모든 Trace의 스타일 업데이트가 가능하여 코드의 길이를 줄일 수 있으며 가독성이 높은 코드구현을 위해 Trace 생성부 와 Trace 편집부를 나눠서 작성 가능하게 한다.
04.Plotly 기본문법 에서 update_traces() 를 활용한 다양한 편집 방법에 대해 자세히 설명할 예정이다.
예제)
from plotly.subplots import make_subplots
# subplot 생성
fig = make_subplots(rows=1, cols=2)
# Trace 추가하기
fig.add_scatter(y=[4, 2, 3.5], mode="markers",
marker=dict(size=20, color="LightSeaGreen"),
name="a", row=1, col=1)
fig.add_bar(y=[2, 1, 3],
marker=dict(color="MediumPurple"),
name="b", row=1, col=1)
fig.add_scatter(y=[2, 3.5, 4], mode="markers",
marker=dict(size=20, color="MediumPurple"),
name="c", row=1, col=2)
fig.add_bar(y=[1, 3, 2],
marker=dict(color="LightSeaGreen"),
name="d", row=1, col=2)
# 한번에 Bar plot 만 파란색으로 바꾸기
fig.update_traces(marker=dict(color="RoyalBlue"),
selector=dict(type="bar"))
fig.show()
- 총 4개의 Trace를 생성
- update_traces() 를 활용하여 4개 중 Barplot만 RoyalBlue 색으로 한번에 변경
update_layout()
fig.update_layout(업데이트 내용)
update_layout() 함수를 사용하면 그래프 사이즈, 제목 및 텍스트, 글꼴크기 와 같은 Trace 외적인 그래프 요소를 업데이트 가능다.
04.Plotly 기본문법 에서 update_layout() 를 활용한 다양한 편집 방법에 대해 자세히 설명할 예정이다.
예제)
import plotly.graph_objects as go
#그래프 생성
fig = go.Figure(data=go.Bar(x=[1, 2, 3], y=[1, 3, 2]))
# 타이틀 추가하기
fig.update_layout(title_text="Using update_layout() With Graph Object Figures",title_font_size=30)
fig.show()
- update_layout()을 활용하여 타이틀 추가
update_xaxes() / update_yaxes()
fig.update_xaxes(업데이트 내용)
fig.update_yaxes(업데이트 내용)
update_xaxes(), update_yaxes() 함수를 사용하면 각각 X축, Y축에 관한 다양한 편집이 가능합니다. ex) 축 타이틀, 축 라인 스타일, 그리드 설정 등
04.Plotly 기본문법 에서 update_xaxes() , update_yaxes() 를 활용한 다양한 편집 방법에 대해 자세히 설명할 예정이다.
예제)
import plotly.graph_objects as go
import plotly.express as px
#데이터 생성
df = px.data.tips()
x = df["total_bill"]
y = df["tip"]
# 그래프 그리기
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers'))
# 축 타이틀 추가하기
fig.update_xaxes(title_text='Total Bill ($)')
fig.update_yaxes(title_text='Tip ($)')
fig.show()