如何在 Jupyter 笔记本上并排显示 YouTube 视频和 matplotlib 图?

时间:2021-01-20 00:51:31

标签: python matplotlib ipython jupyter

我正在使用 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)

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

1 个答案:

答案 0 :(得分: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有关。