Разделите ячейку jupyter на несколько слайдов

#python #matplotlib #jupyter-notebook #jupyter

#питон #matplotlib #юпитер-записная книжка #юпитер

Вопрос:

Я использую блокнот jupyter в качестве песочницы для своих тестов. Мне это нравится, потому что легко просто генерировать слайды, чтобы показать некоторые графики при обсуждении результатов с помощью масштабирования. Однако у меня есть небольшая проблема.

Я написал функцию, которая захватывает несколько столбцов моего набора данных, выполняет с ними некоторые вычисления, а затем строит все возможные комбинации одного столбца против другой. Я хочу, чтобы они были видны в натуральную величину, а не в микро, как на pandas.scatter_matrix графике. Но результаты слишком велики, чтобы поместиться на одном слайде. Есть ли какой-нибудь способ разделить его? На данный момент я активировал полосу прокрутки, и я могу прокручивать слайд вниз, но это некрасиво (я использую Reveal)

jupyter nbconvert my_notebook.ipynb --to slides --post serve --SlidesExporter.reveal_scroll=True

 %matplotlib inline import matplotlib.pyplot as plt  import numpy as np  from itertools import combinations  fruit_data = np.random.randn(500,5) fruit_names = ['Apples', 'Bananas', 'Oranges', 'Mangoes', 'Kiwis']  def plot_data(data, labels):  n_series = data.shape[1]  plot_index = list(combinations(np.arange(n_series), 2))  fig = plt.figure(figsize=(12,5*len(plot_index)))  for i,plot in enumerate(plot_index):  ax = fig.add_subplot(len(plot_index), 1, i 1)  ax.scatter(data[:, plot[0]], data[:, plot[1]])  # Get axis labels  ax.set_xlabel(labels[plot[0]])  ax.set_ylabel(labels[plot[1]])  plot_data(fruit_data, fruit_names)  

Результат такой. В реальном случае в данных больше функций, несколько серий, с разными цветами, тенденциями и т. Д.

введите описание изображения здесь

Комментарии:

1. Вместо подзаголовков вы можете построить их отдельно, чтобы они не были одной фигурой, или построить их двумя столбцами

2. Я не думаю, что существует простой способ программно заполнить другие ячейки. Однако, если вы перестроите свой сценарий plot_data так, чтобы делать только несколько за раз, вы можете просто делать plot_data(group1) в первой ячейке, plot_data(group2) во второй и т. Д.

3. Спасибо @JodyKlymak. Я так и делал, но это было утомительно, поэтому я вложил все в функцию. Я не уверен, что у matplotlibs есть другая структура, кроме подзаголовков, которая позволяет мне строить графики программно. В любом случае, я предполагаю, что то, что работает в ноутбуке, не всегда подходит для слайд-шоу

4. Я имею в виду, что Matplotlib может делать все, что вы хотите, его jupyter, который хочет назначить каждую ячейку слайду, который является ограничивающим фактором.