При использовании записной книжки в Google Colab мои matplotlib графики ведут себя по-разному, независимо от того, импортирую ли я библиотеку pandas-profiling или нет.
Если нетimport pandas-profiling , графики отображаются inline по умолчанию . Но если я импортирую библиотеку, графики перестанут отображаться встроенными .
Обходные пути (возможные решения)
- Обновление pandas-profiling библиотека перед импортом решает проблему.
- Добавление
%matplotlib inline
после импорт pandas-profiling решает проблему.
Воспроизведение
Запустите этот код в Google Colab, чтобы воспроизвести проблему. Протестируйте его с импортом pandas_profiling и без него. Для каждого теста вам необходимо прекратить сеанс (время выполнения-> Управление сеансами-> Завершить). Недостаточно просто перезапустить среду выполнения.
import matplotlib.pyplot as plt
# importing the pandas_profiling makes matplotlib
# to stop showing the plot inline
# import pandas_profiling
plt.plot([1, 2], [1, 2])
Ожидаемое поведение - показать график по умолчанию, но после импорта pandas-profiling , графики перестанет отображаться в строке .
Реальная проблема
Я наткнулся на эту проблему, когда мои функции построения seaborn начали ломаться.
Например, рассмотрим следующий код.
import matplotlib.pyplot as plt
# import pandas_profiling
import seaborn as sns
def plot():
ax = sns.pointplot([1, 2], [1, 2])
print(len(ax.collections))
Теперь вызовите plot()
в двух разных ячейках юпитера.
- Без pandas-profiling :каждый вызов функции будет выводить 1.
- с pandas-profiling : каждый вызов функции добавляет 1 к предыдущему выводу.