import plotly.express as px
import plotly.graph_objs as go
# 간단한 그래프 생성
= px.data.gapminder()
df = go.Figure()
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", title="GDP vs Life Expectancy")
fig
# Modebar 숨기기
={"displayModeBar": False}) fig.show(config
Plotly Modebar 설정하기
Plotly는 강력한 대화형 데이터 시각화 도구로, 사용자가 데이터를 더욱 쉽게 탐색할 수 있도록 다양한 기능을 제공합니다. 그 중에서도 Modebar는 그래프와 상호작용할 수 있는 도구들을 모아놓은 도구 모음입니다.
Modebar란 무엇인가?
Modebar는 Plotly 그래프의 상단에 기본적으로 표시되는 도구 모음으로, 사용자가 그래프와 상호작용할 수 있는 다양한 기능들을 제공합니다. 이 기능들은 데이터 탐색과 분석을 보다 직관적으로 만들며, 대화형 그래프의 주요 장점을 극대화합니다.
Modebar에서 제공하는 주요 기능들은 다음과 같습니다:
- Zoom: 그래프의 특정 영역을 확대하여 자세히 볼 수 있습니다.
- Pan: 확대된 그래프를 드래그하여 다른 영역으로 이동할 수 있습니다.
- Reset Axes: 그래프를 원래의 축으로 초기화합니다.
- Zoom In/Out: 축의 크기를 확대하거나 축소할 수 있습니다.
- Autoscale: 그래프의 모든 데이터를 화면에 맞게 자동으로 조정합니다.
- Box Select / Lasso Select: 특정 영역을 선택하여 그 부분의 데이터만 강조합니다.
- Download Plot as PNG: 그래프를 PNG 이미지로 다운로드할 수 있습니다.
이러한 도구들은 사용자가 그래프에서 특정 데이터를 자세히 보거나, 선택한 데이터를 분석할 때 매우 유용합니다.
Modebar 설정 및 커스터마이징
Plotly에서는 Modebar의 표시 여부와 다양한 설정을 자유롭게 변경할 수 있습니다. fig.show()
함수를 호출할 때, config
매개변수를 사용해 Modebar를 커스터마이징할 수 있습니다. 주요 설정 옵션들을 알아보겠습니다.
1. Modebar 숨기기
기본적으로 표시되는 Modebar를 숨기고 싶다면 displayModeBar
옵션을 False
로 설정하면 됩니다. 이 설정은 특정 상황에서 사용자에게 불필요한 도구 모음을 감추고 깔끔한 그래프를 제공할 때 유용합니다.
2. Modebar 항상 표시
반대로, Modebar를 항상 표시하고 싶다면 displayModeBar
옵션을 True
로 설정하면 됩니다. 이는 그래프가 로드될 때 사용자가 언제든지 상호작용할 수 있도록 도와줍니다.
# Modebar 항상 표시
= go.Figure()
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", title="GDP vs Life Expectancy")
fig ={"displayModeBar": True}) fig.show(config
3. 모드바에서 특정 버튼 제거
Modebar에서 특정 버튼을 제거할 수도 있습니다. modeBarButtonsToRemove
옵션을 사용하여 제거할 버튼을 지정할 수 있습니다. 예를 들어, 사용자가 그래프를 다운로드하는 버튼을 제거하고 싶다면 다음과 같이 설정합니다.
= go.Figure()
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", title="GDP vs Life Expectancy")
fig # 'Download Plot as PNG' 버튼 제거
={"modeBarButtonsToRemove": ["toImage"]}) fig.show(config
4. 모드바 사용자 정의
Modebar에 표시할 버튼 그룹을 직접 정의할 수도 있습니다. modeBarButtons
옵션을 사용하여 원하는 버튼만 표시하거나, 사용자 정의 그룹을 만들 수 있습니다.
= go.Figure()
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", title="GDP vs Life Expectancy")
fig # 기본 버튼들 대신 팬과 확대/축소 버튼만 표시
={"modeBarButtons": [["zoom2d", "pan2d"]]}) fig.show(config
5. Scrool Zoom 비활성화
Plotly에서 그래프의 줌 기능을 비활성화하려면 config 설정에서 scrollZoom 옵션을 False로 설정하면 됩니다. 이 설정은 마우스 휠이나 터치패드를 사용하여 그래프를 확대하거나 축소하는 기능을 비활성화합니다.
= go.Figure()
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", title="GDP vs Life Expectancy")
fig # 기본 버튼들 대신 팬과 확대/축소 버튼만 표시
={
fig.show(config"scrollZoom": False, # 마우스 휠 줌 비활성화
"displayModeBar": True # Modebar는 계속 표시
})
6. Zoom/Pan 기능 비활성화
줌 기능을 완전히 비활성화하고 팬(Pan) 기능도 막고 싶다면, 아래와 같이 fig.update_layout()을 사용해 dragmode를 ‘zoom’, ‘pan’ 등에서 ’false’로 설정할 수 있습니다.
= go.Figure()
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", title="GDP vs Life Expectancy")
fig
# 줌 및 팬 기능 비활성화
=False)
fig.update_layout(dragmode
# 기본 버튼들 대신 팬과 확대/축소 버튼만 표시
={
fig.show(config"scrollZoom": False, # 마우스 휠 줌 비활성화
"displayModeBar": True, # Modebar는 계속 표시
})
이렇게 설정하면 마우스 드래그로 축을 조작하거나 확대/축소하는 모든 기능이 비활성화됩니다. 이 방법을 통해 사용자가 그래프를 탐색할 때 특정 인터랙션을 제한할 수 있습니다.
7. Plotly 로고 숨기기
Plotly 로고를 Modebar에서 숨길 수 있습니다.
= go.Figure()
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", title="GDP vs Life Expectancy")
fig
# 기본 버튼들 대신 팬과 확대/축소 버튼만 표시
={"displaylogo": False}) fig.show(config
결론
Plotly의 Modebar는 대화형 그래프와 사용자가 상호작용할 수 있는 핵심 도구입니다. 그래프에서 줌, 팬, 데이터 선택 및 이미지 다운로드 등 다양한 기능을 통해 데이터를 더욱 깊이 있게 탐색할 수 있습니다.
또한, Modebar를 숨기거나, 특정 버튼을 제거하거나, 색상을 커스터마이징하여 사용자의 필요에 맞게 그래프를 최적화할 수 있습니다.