Измените бэкэнд построения графиков pandas, чтобы получать интерактивные графики вместо статических графиков matplotlib

Когда я использую pandas df.plot(), в качестве бэкэнда для построения графиков по умолчанию используется matplotlib. Но это создает статические графики.

Мне нужны интерактивные графики, поэтому мне нужно изменить фон рисования панд.

Как мне изменить бэкэнд рисования панд, чтобы при использовании я использовал другую библиотеку, создающую мои графики. сюжет ()?


person Sander van den Oord    schedule 17.10.2019    source источник


Ответы (4)


Вам нужно pandas ›= 0,25, чтобы изменить серверную часть построения pandas.

Доступные серверные части для построения графиков:

Итак, настройка по умолчанию:

pd.options.plotting.backend = 'matplotlib'

Вы можете изменить библиотеку черчения, которую использует pandas, следующим образом. В этом случае он устанавливает hvplot / holoviews как серверную часть построения:

pd.options.plotting.backend = 'hvplot'

Или вы также можете использовать (что в основном то же самое):

pd.set_option('plotting.backend', 'hvplot')

Теперь у вас есть hvplot / holoviews в качестве бэкэнда для построения графиков для панд, и он предоставит вам интерактивные графики головных изображений вместо статических графиков matplotlib.

Конечно, чтобы это работало, у вас должна быть установлена ​​библиотека hvplot / holoviews + dependencies.

Вот пример кода, создающего интерактивный сюжет. Он использует стандартный синтаксис pandas .plot ():

import numpy as np
import pandas as pd

import hvplot
import hvplot.pandas

pd.options.plotting.backend = 'hvplot'

data = np.random.normal(size=[50, 2])

df = pd.DataFrame(data, columns=['x', 'y'])

df.plot(kind='scatter', x='x', y='y')
person Sander van den Oord    schedule 17.10.2019
comment
Можно ли использовать plotly в качестве бэкэнда для построения графиков? - person thinwybk; 17.04.2020
comment
Бэкэнд Plotly доступен с plotly ›= 4.8.0 - person Sander van den Oord; 27.05.2020

Чтобы изменить бэкэнд построения панд для всего сеанса, используйте:

pd.options.plotting.backend = 'plotly'

Чтобы изменить серверную часть построения pandas только для одного конкретного графика, используйте:

df.plot(backend='plotly')

See also:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html https://pandas.pydata.org/docs/user_guide/options.html?highlight=plotting%20backend#available-options

person Sander van den Oord    schedule 02.09.2020

Начиная с plotly 4.8.0, вы можете использовать plotly для интерактивного построения с помощью pandas 1.0+.

Обновить с помощью pip install -U plotly

Настройте бэкэнд для построения графика:

pd.options.plotting.backend = "plotly" 

df = pd.DataFrame(dict(a=[1, 2, 3], b=[2, 4, 6]))
df.plot()

Вот объявление

Обратите внимание, что у этих бэкэндов нет полного согласования со всеми аргументами, которые работают с бэкэндом matplotlib по умолчанию.

Также обратите внимание, что для Альтаира необходимо установить altair_pandas.

person jeffhale    schedule 26.05.2020
comment
почему-то я продолжаю получать ошибку «Не удалось найти бэкэнд для построения графика». Убедитесь, что вы установили пакет, предоставляющий точку входа «plotly», или что в пакете есть .plot метод верхнего уровня ». Не следует ли нам ничего не упоминать с df.plot (backend = 'plotly') вместе с приведенным выше утверждением? - person julian joseph; 29.07.2020
comment
@julianjoseph похоже на то, что панды ищут заговорщиков и не находят. У вас установлена ​​обновленная версия plotly и обновленная версия pandas - и это те версии, которые активны в вашей среде? Вы можете проверить, импортировав обе библиотеки и проверив их атрибуты версии. Если вы используете Jupyter и недавно обновили или установили пакеты, вы можете попробовать перезапустить ядро. - person jeffhale; 30.07.2020

Вы также можете использовать альтернативные бэкенды, используя backend для самого метода построения графика:

df.plot(backend='matplotlib')

Я изучаю новый бэкэнд и использую его, когда хочу воспроизвести свою диаграмму в matplotlib. Параметры метода построения графика не совпадают в разных бэкэндах.

person neves    schedule 04.05.2021