python — IPython: как показать один и тот же график в разных ячейках?
Задавать вопрос
Спросил
Изменено 3 года, 6 месяцев назад
Просмотрено 3k раз
7
Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.
Я все еще новичок в IPython Notebooks, Jupyter и Python в целом.
Я создаю точечную диаграмму в блокноте Jupyter, используя следующий код:
import numpy as np импортировать matplotlib.pyplot как plt п = 1024 X = np.random.normal (0, 1, n) Y = np.random.normal (0, 1, n) plt.axes([0,025, 0,025, 0,95, 0,95]) plt.scatter(X, Y, s=50) plt.show()
Мой вопрос: как я могу получить ссылку на объект графика, чтобы я мог использовать его в другой ячейке позже в блокноте? Кроме того, мне может потребоваться изменить график, прежде чем показывать его снова.
Кроме того, у меня есть %matplotlib inline
вверху блокнота.
Вот некоторая информация о моей среде:
- Python: 3.5.2 64-бит [MSC v.1900 64-бит (AMD64)]
- IPython: 4.2.0
- номер: 1.11.1
- scipy: 0.17.1
- matplotlib: 1.5.1
- Симпи: 1.0
- ОС: Windows 7 6.1.7601 SP1
- python
- matplotlib
- ipython-ноутбук
- jupyter-ноутбук
2
Я нашел решение! В основном вы создаете фигуру и ось с помощью fig, ax = plt.subplots()
, а затем используете переменную ax
для рисования (возможно, в нескольких ячейках). В любой из ячеек, в которые вы хотите перестроить фигуру, просто напишите fig

См. мой ответ здесь для более подробной информации.
Попробуйте объектно-ориентированный интерфейс matplotlib — matplotlib.figure; при необходимости вы можете использовать ссылку на созданный объект Figure.
- Создать объект фигуры —
fig = plt.figure()
- Добавить к нему оси —
ax = fig.add_axes([0.025, 0.025, 0.95, 0.95])
- График на оси создан —
ax.plot(X, Y)
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
python — Как отобразить две фигуры рядом в ячейке Jupyter
7
Новое! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.
импорт панд как pd импортировать Seaborn как sns # загрузить данные df = sns.load_dataset('пингвины', cache=False) sns.scatterplot (данные = df, x = 'bill_length_mm', y = 'bill_depth_mm', оттенок = 'пол') plt.show() sns.scatterplot (данные = df, x = 'flipper_length_mm', y = 'body_mass_g', оттенок = 'пол') plt.show()
Когда я рисую два графика с сиборном, в одной ячейке, в юпитере, я получаю такой вид:
Я хочу нарисовать графики рядом, вот так:
plot1 plot2
Как мне это сделать?
Обновлено:
Не два графика на одной фигуре, а два сюжета на двух отдельных фигурах.
- Это не искомое решение, потому что это два сюжета на одной фигуре.
рис, топор = plt.subplots(1,2) sns.plotType(someData, ax=ax[0]) # plot1 sns.plotType(someData, ax=ax[1]) # plot2 рис.шоу()
- Решения из предложенного дубликата блокнота ipython располагают участки горизонтально, не работают
- Параметр с
%html
приводит к тому, что числа отображаются друг над другом - Кроме того, другие параметры были для
ipython
.
- Параметр с
- питон
- ноутбук jupyter
0
- Пожалуй, это самое простое решение. Другие решения, вероятно, будут включать взлом серверной среды Jupyter.
- Этот вопрос касается отображения двух фигур рядом.
- Две отдельные фигуры, расположенные рядом, выполненные из ячейки кода, не работают.
- Вам нужно будет создать отдельные рисунки и использовать
plt.savefig('file.jpg')
для сохранения каждого рисунка в файл.
импорт панд как pd импортировать Seaborn как sns импортировать matplotlib.pyplot как plt # загрузить данные df = sns.load_dataset('пингвины', cache=False) # создать и сохранить фигуру sns.scatterplot (данные = df, x = 'bill_length_mm', y = 'bill_depth_mm', оттенок = 'пол') plt.savefig('bill.jpg') plt.close() # предотвращает отображение фигуры при выполнении ячейки кода # создать и сохранить новую фигуру sns.![]()