类型错误:“UndefinedType”对象不可调用

Mat*_*ijn 5 altair

TypeError: 'UndefinedType' object is not callable运行以下 Altair 代码时,我收到了。

import altair as alt
from vega_datasets import data
cars = data.cars()

alt.Chart(cars).mark_point().encode(
    x=alt.X('Horsepower').axis(tickMinStep=50),
    y=alt.Y('Miles_per_Gallon').title('Miles per Gallon'),
    color='Origin',
    shape='Origin'
)
Run Code Online (Sandbox Code Playgroud)

Mat*_*ijn 3

Vega-Altair 在版本 5 中引入了一种基于方法的语法,用于设置编码通道选项(请参阅文档)。

OP 规范中的以下行使用基于方法的语法

x=alt.X('Horsepower').axis(tickMinStep=50)
Run Code Online (Sandbox Code Playgroud)

使用基于参数的语法这样编写:

x=alt.X('Horsepower', axis=alt.Axis(tickMinStep=50))
Run Code Online (Sandbox Code Playgroud)

如果您遇到此错误,您可能使用的是 Vega-Altair 版本 4.x。您有两个选择:

  • 将基于方法的语法重写为基于参数的语法
  • 升级到最新版本的 Vega-Altair。

首先,使用Vega-Altair 版本 4的文档的文档。

对于后者,目前可以使用以下命令安装 Vega-Altair 版本 5:

pip install altair>=5
Run Code Online (Sandbox Code Playgroud)