Altair 显示 X 和 Y 名称正确的空白图表

Altair Display A Blank Chart with Correct Names of X and Y

我是数据科学的新手,安装了一些数据科学模块包,如 Altair、Pandas 等。 我试图在 VS Code 的 Python 的 Interactive Window 中显示一些数据。 我把我所有的代码都放在底部了。

奇怪的是我在“图表”变量中没有看到任何数据标记,但是下一个“图表”变量显示了一个数据图表。 我检查了 url 是否错误,但实际上没问题。 这是从顶部开始的这么多行的一些数据。

manufacturer,model,displ,year,cyl,trans,drv,cty,hwy,fl,class
audi,a4,1.8,1999,4,auto(l5),f,18,29,p,compact
audi,a4,1.8,1999,4,manual(m5),f,21,29,p,compact
audi,a4,2,2008,4,manual(m6),f,20,31,p,compact
audi,a4,2,2008,4,auto(av),f,21,30,p,compact
audi,a4,2.8,1999,6,aut

此外,让我添加一张带有我能看到的标记的第二张图表的图片。

# %%
msg = "Hello World"
print(msg)

# %%
msg = "Hello again"
print(msg)

# %%
import sys
!{sys.executable} -m pip install altair_saver

# %%
import pandas as pd   
import altair as alt   

# %%
alt.data_transformers.enable('json')
# %%


# %% 
import altair as alt  
import pandas as pd   
url = "https://github.com/byuidatascience/data4python4ds/raw/master/data-raw/mpg/mpg.csv"
mpg = pd.read_csv(url)
chart = alt.Chart(mpg).mark_point().encode(
    x='displ', 
    y='hwy'
)
chart
# chart.save("screenshots/altair_viz_1.png")

# %%
import altair as alt
alt.__version__
# %%
import altair as alt
from vega_datasets import data
cars = data.cars.url

chart = alt.Chart(cars).mark_point().encode(
    x='Horsepower:Q',
    y='Miles_per_Gallon:Q',
    color='Origin:N',
)
chart
# %%

提前感谢您的宝贵时间。

如果您删除 alt.data_transformers.enable('json'),您的第一个示例将起作用(第二个示例不受此行的影响,因为它使用 URL 而不是数据框)。

import altair as alt  
import pandas as pd   
url = "https://github.com/byuidatascience/data4python4ds/raw/master/data-raw/mpg/mpg.csv"
mpg = pd.read_csv(url)
chart = alt.Chart(mpg).mark_point().encode(
    x='displ', 
    y='hwy'
)
chart

这里有相关讨论https://github.com/altair-viz/altair/issues/1732. I don't know if there is a reliable way of making the json datatransformer work with multiple front ends such as jupyterlab, vscode etc, but you can often use another transformer instead, e.g. https://github.com/altair-viz/altair_data_server