首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Facet类传递给Chart.facet方法

将Facet类传递给Chart.facet方法
EN

Stack Overflow用户
提问于 2022-03-17 17:47:54
回答 1查看 50关注 0票数 1

我正在尝试创建一个函数来创建一个图表,您可以将行、列或面类作为参数传递到图表中。以下是一个非常简化的版本:

代码语言:javascript
复制
def make_chart(data, x, y, **kwargs):
   return alt.Chart(data).mark_line().encode(x=x, y=y).facet(**kwargs)

如果我传递row = alt.Facet('z')column = alt.Facet('z')作为函数的工作函数,但是如果我试图传递facet=alt.Facet('z',columns=2),则会得到一个错误,因为facet方法不接受Facet类作为输入,而是期望字段=‘z’,columns=2

因此,我尝试使用it's ()方法解压alt.Facet(‘z’,columns=2)的参数,但是我得到了一个"Z编码字段被指定而没有类型“错误。

我知道我可以使用alt.Facet('z',columns=2)属性访问alt.Facet (‘z’,columns=2)属性,但是有任何方法可以将所有属性作为字典吗?还是我可以通过alt.Facet作为一个论点?

我需要创建一些分层的平面图表,所以我不能在编码中使用facet。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-17 18:35:41

Altair目前不允许使用.facet(facet=alt.Facet('col', columns=1)),但您可以使用.facet(facet=alt.Facet('col'), columns=1))

代码语言:javascript
复制
import altair as alt
import pandas as pd


def make_chart(data, x, y, **kwargs):
   return alt.Chart(data).mark_point().encode(x=x, y=y).facet(**kwargs)

make_chart(
    pd.DataFrame({'x': [1, 2], 'y': ['b', 'a']}),
    'x',
    'y',
    facet=alt.Facet('y'),
    columns=1
)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71516881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档