본문 바로가기
  • plotly로 바로쓰는 동적시각화 in R & 파이썬
Plotly in R - 그래프에 마우스를 올려봅시다

plotly trace의 공통 속성(Attribute) - hovertext, hoverinfo, hovermode, hovertemplete

by 아참형인간 2022. 4. 18.
hover.knit

trace의 공통 속성(Attribute) - hover 관련 속성(마우스를 올려봅시다)

사용데이터 : https://2stndard.tistory.com/68

hovertext, hoverinfo, hovermode, hovertemplete

plotly와 같은 동적 시각화에서는 대부분 마우스 포인터를 데이터가 표시된 점이나 선에 위치하면 해당 위치의 데이터가 표시된다. plotly에서는 이렇게 데이터의 정보를 표시하는 말풍선을 ’hover’라고 한다. ’hover’는 시각화를 설계하는 사용자에 따라 표시할 정보를 설정할 수 있는데 이 정보를 설정하는 속성이 hover*이다.

hovertext는 X, Y 좌표에 표시되는 문자열을 설정하는 속성이다. 단순 문자열을 설정하면 모든 데이터 호버에 동일한 문자열이 표기되지만 벡터를 설정하면 각각의 호버에 매핑된 결과가 표시된다.

df_취업률_2000 |>
  plot_ly(x = ~졸업자수, y = ~취업자수, name = ~대계열,
          ## hovertext를 학과명으로 매핑
          hovertext = ~학과명) |>
  ## 제목과 여백의 설정
  layout(title = '졸업자 대비 취업자수', margin = margins)

hoverinfo는 호버에 표시되는 데이터 정보를 설정하는 속성이다. 호버에 표시되는 데이터 정보는 각각의 trace에 따라 달라지지만 각 trace에서 많이 사용되는 hoverinfo 속성은 X, Y, Z축의 좌표를 표기하는 것으로 x(X축 좌표), y(Y축 좌표), z(Z축 좌표) 속성을 사용한다. 이 외에도 , text(특정 문자열), name(trace name), none(제거), skip(생략)이 사용될 수 있고 각각은 +를 사용하여 조합할 수 있다.

df_취업률_2000 |>
  plot_ly(x = ~졸업자수, y = ~취업자수, name = ~대계열,
          ## hovertext, hoverinfo의 설정
          hovertext = ~학과명, hoverinfo = 'x+y+text') |>
  layout(title = '졸업자 대비 취업자수', margin = margins)

hovertext는 X, Y 좌표에 표시되는 문자열을 설정하는 속성이다. hovertext는 앞서 설명한 hoverinfotext로 설정하고 hovertext를 설정할 때 호버 상자 안에 text설정값이 표시되지만, hoverinfo를 생략하고 hovertext만 설정하면 호버 상자 밖에 name 속성 값(범례 값)이 표시된다는 차이가 있다. 또 hovertext에 단순 문자열을 설정하면 모든 데이터 호버에 동일한 문자열이 표기되지만 벡터를 설정하면 각각의 호버에 매핑된 결과가 표시된다.

다음의 결과는 hoverinfo와 hovertext 동시 매핑 결과이다.

df_취업률_2000 |> 
  plot_ly(x = ~졸업자수, y = ~취업자수, name = ~대계열,
          ## hoverinfo를 설정하고 hovertext를 중계열로 매핑
          hoverinfo = 'x+y+text', hovertext = ~중계열) |>
  layout(title = '졸업자 대비 취업자수', margin = margins)

다음의 결과는 hoverinfo 없이 hovertext 매핑 결과이다.

df_취업률_2000 |> 
  plot_ly(x = ~졸업자수, y = ~취업자수, name = ~대계열,
          ## hoverinfo를 설정없이 hovertext를 중계열로 매핑
          hovertext = ~중계열) |>
  layout(title = '졸업자 대비 취업자수', margin = margins)

hovertemplete는 호버 상자와 호버 상자에 표시되는 정보의 포맷을 설정하는 속성이다. 이 속성은 앞서 설명한 hoverinfo에 설정된 사용되는 속성의 변수를 %{변수}의 형태로 사용할 수 있다. 예를 들어 호버 상자에 Y축 값을 ‘Y값 : ’을 붙여 표시하기 위해서는 Y값 : %{y}로 설정한다. 앞서 사용된 예에서 X축의 값에 ’졸업자:’, Y축의 값에 ‘취업자:’, 대계열에 ’대계열:’를 표시하고 값을 표시하는 코드는 다음과 같다.

df_취업률_2000 |> 
  plot_ly(x = ~졸업자수, y = ~취업자수, name = ~대계열, 
          hoverinfo = 'x+y+text', text = ~대계열, 
          ## hovertamplate의 설정
          hovertemplate = ' 졸업자:%{x}, 취업자:%{y}, 대계열:%{text}') |>
  layout(title = '졸업자 대비 취업자수', margin = margins)

댓글