Python 使用特定列数对刻面层图表进行排序
答案显示了如何在altiar中刻面分层图表。 在中,Python 使用特定列数对刻面层图表进行排序,python,altair,Python,Altair,答案显示了如何在altiar中刻面分层图表。 在中,facet()函数表示能够获取facet参数,该参数可以是字符串或alt.facet对象 我想制作一个分面的分层图表,带有排序图表和列。我的方法是这样的 import altair as alt from vega_datasets import data cars = data.cars() horse = alt.Chart().mark_point().encode( x='Weight_in_lbs', y='Hors
facet()
函数表示能够获取facet
参数,该参数可以是字符串
或alt.facet
对象
我想制作一个分面的分层图表,带有排序图表和列。我的方法是这样的
import altair as alt
from vega_datasets import data
cars = data.cars()
horse = alt.Chart().mark_point().encode(
x='Weight_in_lbs',
y='Horsepower'
)
miles = alt.Chart().mark_point(color='red').encode(
x='Weight_in_lbs',
y='Miles_per_Gallon'
)
alt.layer(horse, miles, data=cars).facet(
# column='Origin'
facet=alt.Facet('Origin', sort=['USA', 'Europe', 'Japan'], columns=2)
)
不幸的是,它引发了这种非信息性错误
Traceback (most recent call last):
File ".\test.py", line 19, in <module>
'test.html', webdriver='firefox', embed_options={'renderer': 'svg'})
File "<conda-path>\lib\site-packages\altair\vegalite\v4\api.py", line 476, in save
result = save(**kwds)
File "<conda-path>\lib\site-packages\altair\utils\save.py", line 79, in save
spec = chart.to_dict()
File "<conda-path>\lib\site-packages\altair\vegalite\v4\api.py", line 382, in to_dict
dct = super(TopLevelMixin, copy).to_dict(*args, **kwargs)
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 328, in to_dict
context=context,
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 62, in _todict
for k, v in obj.items()
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 63, in <dictcomp>
if v is not Undefined
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 56, in _todict
return obj.to_dict(validate=validate, context=context)
File "<conda-path>\lib\site-packages\altair\vegalite\v4\api.py", line 382, in to_dict
dct = super(TopLevelMixin, copy).to_dict(*args, **kwargs)
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 328, in to_dict
context=context,
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 62, in _todict
for k, v in obj.items()
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 63, in <dictcomp>
if v is not Undefined
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 58, in _todict
return [_todict(v, validate, context) for v in obj]
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 58, in <listcomp>
return [_todict(v, validate, context) for v in obj]
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 56, in _todict
return obj.to_dict(validate=validate, context=context)
File "<conda-path>\lib\site-packages\altair\vegalite\v4\api.py", line 382, in to_dict
dct = super(TopLevelMixin, copy).to_dict(*args, **kwargs)
File "<conda-path>\lib\site-packages\altair\utils\schemapi.py", line 339, in to_dict
raise SchemaValidationError(self, err)
altair.utils.schemapi.SchemaValidationError: Invalid specification
altair.vegalite.v4.api.Chart, validating 'required'
'data' is a required property
回溯(最近一次呼叫最后一次):
文件“\test.py”,第19行,在
'test.html',webdriver='firefox',embed_options={'renderer':'svg'})
文件“\lib\site packages\altair\vegalite\v4\api.py”,第476行,保存
结果=保存(**kwds)
文件“\lib\site packages\altair\utils\save.py”,第79行,保存
spec=图表到目录()
文件“\lib\site packages\altair\vegalite\v4\api.py”,第382行,在to_dict中
dct=super(顶级混音,复制)。to_dict(*args,**kwargs)
文件“\lib\site packages\altair\utils\schemapi.py”,第328行,在目录中
上下文=上下文,
文件“\lib\site packages\altair\utils\schemapi.py”,第62行,在
对于对象项()中的k,v
文件“\lib\site packages\altair\utils\schemapi.py”,第63行,在
如果v不是未定义的
文件“\lib\site packages\altair\utils\schemapi.py”,第56行,在
将对象返回到目录(validate=validate,context=context)
文件“\lib\site packages\altair\vegalite\v4\api.py”,第382行,在to_dict中
dct=super(顶级混音,复制)。to_dict(*args,**kwargs)
文件“\lib\site packages\altair\utils\schemapi.py”,第328行,在目录中
上下文=上下文,
文件“\lib\site packages\altair\utils\schemapi.py”,第62行,在
对于对象项()中的k,v
文件“\lib\site packages\altair\utils\schemapi.py”,第63行,在
如果v不是未定义的
文件“\lib\site packages\altair\utils\schemapi.py”,第58行,在
返回[_todict(v,validate,context)用于obj中的v]
文件“\lib\site packages\altair\utils\schemapi.py”,第58行,在
返回[_todict(v,validate,context)用于obj中的v]
文件“\lib\site packages\altair\utils\schemapi.py”,第56行,在
将对象返回到目录(validate=validate,context=context)
文件“\lib\site packages\altair\vegalite\v4\api.py”,第382行,在to_dict中
dct=super(顶级混音,复制)。to_dict(*args,**kwargs)
文件“\lib\site packages\altair\utils\schemapi.py”,第339行,在目录中
raise SchemaValidationError(自我,错误)
altair.utils.SchemaAPI.SchemaValidationError:规范无效
altair.vegalite.v4.api.Chart,验证“必需”
“数据”是必需的属性
如果没有
columns=2
参数,它将按预期工作,但没有列。将column=2
属性移出alt.Facet
对象似乎可以完成这项工作
import altair as alt
from vega_datasets import data
cars = data.cars()
horse = alt.Chart().mark_point().encode(
x='Weight_in_lbs',
y='Horsepower'
)
miles = alt.Chart().mark_point(color='red').encode(
x='Weight_in_lbs',
y='Miles_per_Gallon'
)
alt.layer(horse, miles, data=cars).facet(
# column='Origin'
facet=alt.Facet('Origin', sort=['USA', 'Europe', 'Japan']),
columns=2
)