> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tables에 Plotly 또는 Bokeh 차트를 추가하려면 어떻게 해야 하나요?

Plotly 또는 Bokeh figure를 table에 직접 통합하는 기능은 지원되지 않습니다. 대신 figure를 HTML로 내보내고 해당 HTML을 table에 포함하세요. 다음 예시는 대화형 Plotly 및 Bokeh 차트로 이 작업을 수행하는 방법을 보여줍니다.

<Tabs>
  <Tab title="Plotly">
    ```python theme={"system"}
    import wandb
    import plotly.express as px

    # 새 run 초기화
    with wandb.init(project="log-plotly-fig-tables", name="plotly_html") as run:

        # table 생성
        table = wandb.Table(columns=["plotly_figure"])

        # Plotly figure 경로 정의
        path_to_plotly_html = "./plotly_figure.html"

        # Plotly figure 생성
        fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])

        # Plotly figure를 HTML로 내보내기
        # auto_play를 False로 설정하면 애니메이션 Plotly 차트가 자동으로 재생되지 않음
        fig.write_html(path_to_plotly_html, auto_play=False)

        # Plotly figure를 HTML 파일로 table에 추가
        table.add_data(wandb.Html(path_to_plotly_html))

        # Table 로깅
        run.log({"test_table": table})

    ```
  </Tab>

  <Tab title="Bokeh">
    ```python theme={"system"}
    from scipy.signal import spectrogram
    import holoviews as hv
    import panel as pn
    from scipy.io import wavfile
    import numpy as np
    from bokeh.resources import INLINE

    hv.extension("bokeh", logo=False)
    import wandb

    def save_audio_with_bokeh_plot_to_html(audio_path, html_file_name):
        sr, wav_data = wavfile.read(audio_path)
        duration = len(wav_data) / sr
        f, t, sxx = spectrogram(wav_data, sr)
        spec_gram = hv.Image((t, f, np.log10(sxx)), ["Time (s)", "Frequency (Hz)"]).opts(
            width=500, height=150, labelled=[]
        )
        audio = pn.pane.Audio(wav_data, sample_rate=sr, name="Audio", throttle=500)
        slider = pn.widgets.FloatSlider(end=duration, visible=False)
        line = hv.VLine(0).opts(color="white")
        slider.jslink(audio, value="time", bidirectional=True)
        slider.jslink(line, value="glyph.location")
        combined = pn.Row(audio, spec_gram * line, slider).save(html_file_name)

    html_file_name = "audio_with_plot.html"
    audio_path = "hello.wav"
    save_audio_with_bokeh_plot_to_html(audio_path, html_file_name)

    wandb_html = wandb.Html(html_file_name)
    with wandb.init(project="audio_test") as run:
        my_table = wandb.Table(columns=["audio_with_plot"], data=[[wandb_html], [wandb_html]])
        run.log({"audio_table": my_table})
    ```
  </Tab>
</Tabs>

***

<Badge stroke shape="pill" color="blue" size="md">[Experiments](/ko/support/models/tags/experiments)</Badge><Badge stroke shape="pill" color="blue" size="md">[Tables](/ko/support/models/tags/tables)</Badge><Badge stroke shape="pill" color="blue" size="md">[차트](/ko/support/models/tags/charts)</Badge>
