更改 pandas 绘图后端以获取交互式绘图而不是 matplotlib 静态绘图

Change pandas plotting backend to get interactive plots instead of matplotlib static plots

当我使用 pandas df.plot() 时,它有 matplotlib 作为默认绘图后端。但这会创建静态图。

我想要交互式绘图,所以我必须更改 pandas 绘图背景。

当我使用 .plot() 时,如何更改 pandas 的绘图后端以使用不同的库创建我的绘图?

您需要 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 作为 pandas 的绘图后端,它将为您提供交互式 holoviews 图而不是静态 matplotlib 图。

当然你需要安装库 hvplot / holoviews + 依赖项才能工作。

这是生成交互式绘图的代码示例。它使用标准的 .plot() pandas 语法:

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')

从 plotly 4.8.0 开始,您可以使用 plotly 与 pandas 1.0+ 进行交互式绘图。

更新 pip install -U plotly

将绘图后端设置为 plotly:

pd.options.plotting.backend = "plotly" 

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

Here's the announcement

请注意,这些后端与适用于默认 matplotlib 后端的所有参数并不完全一致。

另请注意,Altair 需要安装 altair_pandas

要为整个会话更改pandas绘图后端,请使用:

pd.options.plotting.backend = 'plotly'

要仅更改 pandas 绘图后端 一个特定的图 ,请使用:

df.plot(backend='plotly')

另见:

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

您还可以使用 backend 将后端替换为 plot 方法本身:

df.plot(backend='matplotlib')

我正在学习一个新的后端,当我想在 matplotlib 中重现我的图表时会使用它。 plot方法的参数在不同后端不一样