【问题标题】:How to display a YouTube video and matplotlib plot side by side on Jupyter notebook?如何在 Jupyter 笔记本上并排显示 YouTube 视频和 matplotlib 图?
【发布时间】:2021-01-20 00:51:31
【问题描述】:

我正在使用 Ipython 编写交互式 Jupyter 笔记本,我想将 YouTube 视频与 matplotlib 图并排显示。 每个都可以正确显示,但是当我尝试在 HBox 中显示它们时,它们会出现在另一个下方,而不是水平彼此相邻。我尝试缩小它们,但行为没有改变。 这是一个来自kapernikov.com的另一个例子

import ipywidgets as widgets
from IPython.display import display
import numpy as np
import matplotlib.pyplot as plt


SalidaEjes = widgets.Output()

x = np.linspace(0, 2 * np.pi, 100)

with SalidaEjes:
    fig, ax = plt.subplots(figsize=(3, 2))
    line, = ax.plot(x, np.sin(x))

from IPython.display import YouTubeVideo

SalidaVideo = widgets.Output()

with SalidaVideo:
    display(YouTubeVideo('RdMj0iMCYfE', width=200, height=200))

Salidas = widgets.HBox([SalidaEjes, SalidaVideo])
display(Salidas)

我想我犯了一个明显的错误,但我不知道在哪里。 任何帮助表示赞赏! 最好的问候。

【问题讨论】:

    标签: python matplotlib ipython jupyter


    【解决方案1】:

    您看到的是HBox 显示左侧为空的SalidaEjes,然后是下方自动生成的图(所以HBox 工作正常!)。您需要在SalidaEjes 上下文中显示绘图,以便它不会附加在HBox 之后并显示在HBox/SalidaEjes 中:

    with SalidaEjes:
        x = np.linspace(0, 2 * np.pi, 100)
        fig, ax = plt.subplots(figsize=(3, 2));
        line, = ax.plot(x, np.sin(x))
        plt.show(fig)  # <-- here
    

    这与https://stackoverflow.com/a/51060721/6646912有关。

    【讨论】:

    • 非常感谢您的回答!你真的帮了我。我对 Python 和 Jupyter 环境还很陌生,这个小错误需要我付出很多努力。不过,我获得了更多的信心和知识!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 2018-06-11
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多