首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >牛市与Vaex

牛市与Vaex
EN

Stack Overflow用户
提问于 2020-10-12 07:35:02
回答 1查看 169关注 0票数 1

我试图将瓦埃克斯牛郎一起使用,但我在将Vaex数据文件传递给牛市时遇到了一些困难。

当尝试制作一个简单的线状图

代码语言:javascript
复制
alt.Chart(df)\
.mark_line()\
.encode(alt.X('x'), alt.Y('y1'))

我说错了

编码字段是在没有类型的情况下指定的;不能自动推断类型,因为数据没有指定为pandas.DataFrame。

但是如果我试图指定它们

代码语言:javascript
复制
alt.Chart(df)\
.mark_line()\
.encode(alt.X('x:T'), alt.Y('y1:Q'))

我说错了

Altair.vegalite.v4.api.图->0,验证'additionalProperties‘ 不允许使用其他属性(“y1”、“x”、“y2”是意外的)

在我看来,把Vaex数据和牛郎星联系起来有问题,但我不知道如何绕过它.

在这里,完整的代码:

代码语言:javascript
复制
import altair as alt
import numpy as np
import vaex
import datetime

base = datetime.datetime.today()
dates = [base - datetime.timedelta(days=x) for x in range(10)]

y1 = np.sin(range(10))
y2 = np.cos(range(10))

df = vaex.from_arrays(x=dates, y1=y1, y2=y2)

alt.Chart(df)\
.mark_line()\
.encode(alt.X('x:T'), alt.Y('y1:Q')) #.encode(alt.X('x'), alt.Y('y1'))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-12 15:17:05

牛市与Vaex不兼容。进行操作的最简单方法是将Vaex数据在牛市图表中使用时转换为熊猫;例如:

代码语言:javascript
复制
alt.Chart(df.to_pandas_df())

使用这种转换没有什么坏处:熊猫是牛郎星的一个很难的要求,而牛郎星总是将数据串行化到JSON,以便将其传递给Vega。对于Altair所能处理的数据集的大小,Vaex提供的数据表示和序列化的效率并不特别重要。

如果您希望这种情况自动发生,您可以注册一个新的数据转换器,该转换器将支持vaex。这应该能起作用:

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

def vaex_data_transformer(df):
  try:
    df = df.to_pandas_df()
  except AttributeError:
    pass
  return alt.data.default_data_transformer(df)

alt.data_transformers.register('vaex', vaex_data_transformer)
alt.data_transformers.enable('vaex')

有了这个功能,alt.Chart()将在熊猫数据被接受的任何地方接受一个金库数据。

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

https://stackoverflow.com/questions/64313453

复制
相关文章

相似问题

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