当我使用 pandasdf.plot()
时,它有 matplotlib 作为默认的绘图后端。但这会创建静态图。
我想要交互式绘图,所以我必须更改熊猫绘图背景。
当我使用 .plot() 时,如何更改 pandas 的绘图后端以使用不同的库创建我的绘图?
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 作为 pandas 的绘图后端,它将为您提供交互式全息图而不是静态 matplotlib 图。
当然,您需要安装库 hvplot / holoviews + 依赖项才能正常工作。
这是一个生成交互式绘图的代码示例。它使用标准的 .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')
要更改整个会话的 pandas 绘图后端,请使用:
pd.options.plotting.backend = 'plotly'
要仅为一个特定的 plot更改 pandas 绘图后端,请使用:
df.plot(backend='plotly')
也可以看看:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html
从 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()
请注意,这些后端与使用默认 matplotlib 后端的所有参数没有完全对齐。
另请注意,Altair 需要安装altair_pandas。
您还可以使用backend
绘图方法本身来替代后端:
df.plot(backend='matplotlib')
我正在学习一个新的后端,当我想在 matplotlib 中重现我的图表时使用它。plot 方法的参数在不同的后端是不一样的。