Plotly의 인터렉티브한 시각화 중 하나는 사용자가 마우스 커서를 포인트 위로 이동했을때 설정한 정보가 나타나는 Hover 레이블 기능 입니다.
import plotly.express as px
#데이터 불러오기
df = px.data.gapminder().query("continent=='Oceania'")
#그래프 그리기
fig = px.line(df, x="year", y="lifeExp", color="country")
fig.update_traces(mode="markers+lines")
fig.show()
import plotly.express as px
#데이터 불러오기
df = px.data.gapminder().query("continent=='Oceania'")
#그래프 그리기
fig = px.line(df, x="year", y="lifeExp", color="country")
fig.update_traces(mode="markers+lines")
# Hover 설정 X 축으로 바꾸기
fig.update_layout(hovermode="x")
fig.show()
import plotly.express as px
#데이터 불러오기
df = px.data.gapminder().query("continent=='Oceania'")
#그래프 그리기
fig = px.line(df, x="year", y="lifeExp", color="country")
fig.update_traces(mode="markers+lines")
# Hover 설정 X 축으로 바꾸
fig.update_layout(hovermode="x unified")
fig.show()
Hover 스타일 편집하는 방법.
fig.update_layout(
hoverlabel_bgcolor="배경색",
hoverlabel_font_size="텍스트 사이즈",
hoverlabel_font_color="텍스트 색",
hoverlabel_font_family="텍스트 서체")
import plotly.express as px
# 데이터 불러오기
df = px.data.gapminder().query("continent=='Oceania'")
# 그래프 그리기
fig = px.line(df, x="year", y="lifeExp", color="country")
fig.update_traces(mode="markers+lines")
fig.update_layout(
hoverlabel_bgcolor="White",
hoverlabel_font_size=20,
hoverlabel_font_color="red",
hoverlabel_font_family="Rockwell"
)
fig.show()
Hover 에 표시되는 Text 내용 또한 편집이 가능.
fig.update_traces(hovertemplate='HTML 스타일 편집')
import plotly.express as px
#데이터 불러오기
df = px.data.gapminder().query("continent=='Oceania'")
#그래프 그리기
fig = px.line(df, x="year", y="lifeExp", color="country",text='pop')
fig.update_traces(mode="markers+lines")
fig.update_traces(hovertemplate='연도: %{x} <br>'+
'pop: %{text} <br>'+
'lifeExp : %{y}')
fig.show()
fig.update_xaxes(showspikes=True, spikecolor="선 색",spikethickness="선 두깨" spikesnap="커서 이동방법", spikemode="선 연장 여부")
fig.update_yaxes(showspikes=True, spikecolor="선 색",spikethickness="선 두깨" spikesnap="커서 이동방법", spikemode="선 연장 여부")
[사용 함수]
fig.update_xaxes() : x축 관련 업데이트
fig.update_yaxes() : y축 관련 업데이트
[함수 input 내용]
showspikes : True, 선 생성여부 결정
spikecolor : 선 색
spikethickness : 선 두깨
spikesnap : 커서 이동 방법
디폴트값 : 값이 있는 위치를 지날때 선 점프하며 이동
"cursor" : 값 여부 상관없이 커서를 따라다님
spikemode : 선 연장여부
디폴트 : 축에서부터 커서까지만 그림
across" : 축에서부터 커서를 넘어 그래프 끝까지 선 생성
import plotly.express as px
#데이터 불러오기
df_2007 = px.data.gapminder().query("year==2007")
#그래프 그리기
fig = px.scatter(df_2007, x="gdpPercap", y="lifeExp", log_x=True, color='continent')
# Hover 텍스트 편집
fig.update_traces(hovertemplate='GDP: %{x} <br>Life Expectancy: %{y}') #
fig.update_traces(hovertemplate=None, selector={'name':'Europe'}) # revert to default hover
# 수평선/수직선 생성
fig.update_xaxes(showspikes=True, spikecolor="green", spikesnap="cursor", spikemode="across")
fig.update_yaxes(showspikes=True, spikecolor="orange", spikethickness=2)
fig.update_layout(spikedistance=1000, hoverdistance=100)
fig.show()
그래프 다운로드, 줌 인, 아웃, 특정 영역 선택 등 다양한 기능을 제공합니다.
왼쪽부터
- 그림파일 다운로드 : 해당 그래프를 이미지 파일로 다운받습니다.
- 영역 줌인 : 마우스 드래그를 통해 선택한 네모박스 영역을 줌인 합니다.
- 그래프를 클릭 한 채로 좌우로 움직이면 축 스케일은 고정 된 상태로 그래프가 이동합니다.
- 마우스 드래그를 통해 네모 박스 영역 선택이 가능합니다.
- 마우스 드래그를 통해 네모박스가 아닌 곡선의 영역 선택이 가능합니다.
- 줌 인 기능입니다.
- 줌 아웃 기능입니다.
- 현 상태에서 그래프를 보기좋게 자동으로 다시 스케일링합니다.
- 최초의 위치 및 스케일링 상태로 돌아갑니다.
- Plotly 공식 홈페이지 링크입니다.
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=[1, 2, 3],
y=[1, 3, 1]))
fig.show(config={'displayModeBar': False})
위 사진에 보면 모드바가 없는 것을 확인할 수 있다.
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=[1, 2, 3],
y=[1, 3, 1]))
fig.show(config={
'modeBarButtonsToRemove': ['zoom', 'pan']
})
위 사진에서 보면 zoom기능과 pan기능이 사라진 것을 볼 수 있다.
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=[1, 2, 3],
y=[1, 3, 1]))
fig.show(config={'modeBarButtonsToAdd':['drawline',
'drawopenpath',
'drawclosedpath',
'drawcircle',
'drawrect',
'eraseshape'
]})
그리기 기능이 생겨 그릴 수가 있다.