Altair 通过绑定范围滑块对日期时间值进行选择和转换过滤器似乎不适用于相等条件或选择器本身

2024-04-03

我想将范围滑块与日期时间值绑定,以仅过滤图表中特定日期的数据。使用stocks数据,我想要做的是让 x 轴显示公司,y 轴显示用户通过范围滑块选择的特定日期的股票价格。

根据来自的输入这个答案 https://stackoverflow.com/questions/62046930/altair-adding-date-slider-for-interactive-scatter-chart-pot和这个issue https://github.com/altair-viz/altair/issues/2008我有下面的代码显示了一些东西 当滑块在一个特定值之后移动时(不等式条件为transform_filter),但其余部分为空。 奇怪的是,如果我有不等式运算符,那么至少它会显示一些东西,但是当它的时候一切都是空的==.

import altair as alt
from vega_datasets import data

source = data.stocks()

def timestamp(t):
  return pd.to_datetime(t).timestamp()

slider = alt.binding_range(step=86400, min=timestamp(min(source['date'])), max=timestamp(max(source['date']))) #86400 is the difference b/w consequetive days

select_date = alt.selection_single(fields=['date'], bind=slider, init={'date': timestamp(min(source['date']))})

alt.Chart(source).mark_bar().encode(
    x='symbol',
    y='price',
).add_selection(select_date).transform_filter(alt.datum.date == select_date.date)

由于输出为空,我倾向于得出结论:transform_filter这引起了问题,但我已经花了 6 个多小时了,并尝试了使用的所有排列和组合alt.expr.toDate以及到处的其他转换,但我无法让它工作。

也刚刚尝试过transform_filter(select_date.date) and transform_filter(date)和其他东西一起但没有什么效果。

The 预期产出就是说,当用户拖动滑块时,条形高度会发生变化(由于数据按日期过滤).

任何帮助将非常感激。


这里有几个问题:

  • 在 Vega-Lite 中,时间戳以毫秒表示,而不是秒
  • 您正在过滤数字时间戳和日期的字符串表示形式之间的相等性。
  • 即使您解析过滤器表达式中的日期,Python 日期解析和 Javascript 日期解析的行为也不同,结果通常不会匹配。即使在 javascript 中,日期解析行为也可能因浏览器而异;所有这些意味着对 Python 和 Javascript 时间戳的相等性进行过滤通常是有问题的
  • 您使用的数据具有每月时间戳,因此滑块步骤应考虑到这一点

记住所有这些,最好的做法可能是调整滑块值并根据匹配的年份和月份进行过滤,而不是尝试在确切的时间戳中实现相等。结果如下:

import altair as alt
from vega_datasets import data
import pandas as pd

source = data.stocks()

def timestamp(t):
  return pd.to_datetime(t).timestamp() * 1000

slider = alt.binding_range(
    step=30 * 24 * 60 * 60 * 1000, # 30 days in milliseconds
    min=timestamp(min(source['date'])),
    max=timestamp(max(source['date'])))

select_date = alt.selection_single(
    fields=['date'],
    bind=slider,
    init={'date': timestamp(min(source['date']))},
    name='slider')

alt.Chart(source).mark_bar().encode(
    x='symbol',
    y='price',
).add_selection(select_date).transform_filter(
    "(year(datum.date) == year(slider.date[0])) && "
    "(month(datum.date) == month(slider.date[0]))"
)

您可以在此处查看结果:维加编辑器 https://vega.github.io/editor/#/url/vega-lite/N4IgJghgLhIFygK4CcA29zQgegM5QHsBjAa1wDojcA3EAXwBoQBbCZEjAIzZCYFMAdkQJgAlgIDm8UAA9pIKAE8ADnwwCCzcRHRMAZqL6owGXIuacC6RiEXylqjAEdEEAVFEwP1NfsPGMZWRRIjU6G1wjPiIPAgF5XFRRMD5kexU1OBBccQlUXxADIzBceABtTCg1AF0mTnETBBBxZUQoDGQ3CQLWOTgARgAmADYAdgAWAAZ+4cm5uaYteLgATnGVwdHhgA55heyq5XhBgFYNvbmbcU95SCr4NY2t3b3wmyhOgVw9AmRmctABlQVTSWQAFIo+GwwXdEMxyHc+ABKAAEAF40SjIdDEslUgjoHwypNqkjUQAyckosHMOJQAAWMOgcIJVVRGJRtPcjNxKWQrKJJLJ9GqdCAA.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Altair 通过绑定范围滑块对日期时间值进行选择和转换过滤器似乎不适用于相等条件或选择器本身 的相关文章

  • 没有名为 pandas_datareader 的模块

    我刚刚安装了pandas datareader using pip install pandas datareader运行成功 现在我尝试将它用于教程 当我尝试导入时出现此错误 import pandas datareader as pdr
  • 如何将 xlsx 读取为 pandas 数据框,并将公式作为字符串

    我有一个包含一些计算列的 Excel 文件 例如 我在 a 列中有一些数据 而 b 列是使用 a 列中的值计算的 我需要将新数据附加到 a 列并计算 b 列并保存文件 import pandas as pd df pd DataFrame
  • 在 python3 中以字节形式访问命令行参数[重复]

    这个问题在这里已经有答案了 是否可以访问原始 argv 元素二进制内容 python3 c import sys print sys argv echo ne xff x80 x00 xff c udcff udc80 udcff 您可以按
  • 将大型 Twitter JSON 数据 (7GB+) 加载到 Python 中

    我已经通过 AWS 设置了一个公共流来收集推文 现在想做一些初步分析 我的所有数据都存储在 S3 存储桶中 5mb 文件 我下载了所有内容并将所有文件合并为一个 每条推文都按照 Twitter 规范存储为标准 JSON 对象 基本上 合并的
  • Kubernetes Python 客户端连接问题

    我已经设置了官方 Kubernetes Python 客户端 https github com kubernetes client python https github com kubernetes client python 我正在运行
  • python中多个页面的数据串联时出现错误

    我在连接多个页面的数据并将其导出到单个 CSV 文件中时遇到错误 根据我的代码 数据导出到第 10 页 但在第 10 页之后它正在工作 import urllib request from bs4 import BeautifulSoup
  • 在 Dash 中使用单选项目在图表之间切换

    我是 Dash 新手 我想制作一个带有在两个图表之间切换的单选项目的应用程序 但我不知道该怎么做 任何帮助将不胜感激 我已经写了一段代码 但我不知道我是否接近 如果可能的话 我想在最后制作的散点图和散点图2之间进行交换 import num
  • ctypes c_char_p 的不同行为?

    我对不同版本的 python 的这种行为感到困惑 不明白为什么 Python 2 7 5 default Aug 25 2013 00 04 04 GCC 4 2 1 Compatible Apple LLVM 5 0 clang 500
  • 如何使用BeautifulSoup查找所有下一个链接

    我目前正在通过预设一个名为 number of pages 的变量来抓取特定网站的所有页面 预设此变量一直有效 直到添加了我不知道的新页面 例如 下面的代码适用于 3 个页面 但网站现在有 4 个页面 base url https secu
  • 将 pandas DataFrame 中的数字转换为特定字符串格式

    我需要运行一个可以通过循环完成的任务 但我想有一种更有效 更漂亮的方法来做到这一点 我有一个DataFrame它有一个整数列 我想将其转换为 4 位字符串表示形式 也就是说 3 应转换为 0003 234 应转换为 0234 我正在寻找一种
  • 每个值有多个键

    是否可以在 Python 字典中为每个值分配多个键 一种可能的解决方案是为每个键分配值 dict k1 v1 k2 v1 k3 v1 k4 v2 但这并不高效 因为我的数据文件大于 2 GB 否则你可以制作一个字典键的字典 key dic
  • python sqlite3从excel创建数据库

    我正在尝试从 Excel 电子表格创建数据库 我有下面的代码 问题是当我运行代码时 我的数据库为每列创建一个表 我想为工作簿中列出的每个电子表格创建一个表格 工作表名称为工作表 1 和工作表 2 import sqlite3 import
  • python3中“super”对象没有属性“__getattr__”

    如何覆盖 getattr 使用 python 3 和继承 当我使用以下内容时 class MixinA def getattr self item Process item and return value if known if item
  • 导入错误 - 发生了什么?

    Python 导入 再次 我有这个文件结构 test start py from scripts import main scripts init py empty main py from import install install p
  • Python 3 中的相对导入

    我想从同一目录中的另一个文件导入函数 通常 以下其中一项有效 from mymodule import myfunction from mymodule import myfunction 但另一个给了我以下错误之一 ImportError
  • 查找两个复杂字典之间的集合差异

    我有两个结构如下的字典 a dict1 a 1 2 3 4 b 1 2 5 6 b dict2 a 1 2 5 6 b 1 2 7 8 我需要找到字典中每个键之间的设置差异 即 dict1 a dict2 a 应该返回 3 4 任何想法都值
  • 现在与出生日期之间的年、月、日、分钟差异

    import datetime birthday datetime datetime 1996 8 15 differnce datetime datetime now birthday This returns a timedelta o
  • 我无法使用 Python 和 Facebook Marketing API 获取所有 Facebook 营销活动的统计信息

    我正在尝试检索以下指标 date campaign name impressions clicks spend 在我的 Facebook 帐户中的所有活动中 但显然我编写的脚本仅返回某些活动的统计数据 而不是全部 它仅返回大多数营销活动的营
  • 无法使用 BeautifulSoup4 (Python 3) 抓取特定表

    我想从 Ligue 1 足球网站上抓取一张表格 具体来说 该表包含有关卡片和裁判的信息 http www ligue1 com LFPStats stats arbitre competition D1 http www ligue1 co
  • 如何在 python 3.x 中使用 string.replace()

    The string replace 在 python 3 x 上已弃用 这样做的新方法是什么 与 2 x 一样 使用str replace https docs python org library stdtypes html str r

随机推荐

  • 跳进C语言的一个块

    如果我像这个例子一样跳进一个块 跳过 声明 include
  • 找到 2 个 java.sql.Timestamps 之间的小时或分钟差异?

    我存储一个java sql Timestamp in a PostgreSQL数据库为时间戳数据类型 我想找出数据库中存储的数据类型与当前数据类型之间的差异 以分钟或小时为单位 时间戳 这样做的最佳方法是什么 是否有内置方法 或者我必须将其
  • 文本背景颜色溢出

    我将背景颜色应用于国家 地区列表中的链接 总体来说效果很好 然而 对于名称较长的国家来说 它的效果不太好 我试图让黄色溢出一切并清楚地显示国家的全名 HTML div class flagList div class flagColumn
  • Jade 模板布局无法与 Node.js 结合使用

    我正在尝试在 Node js 中创建一个使用 Jade 模板和布局的简单服务器 由于某种原因 它只会加载模板而不加载布局 这是我所得到的 main js var express require express var app express
  • 如何正确使用Feature2D(如SimpleBlobDetector)? (Python + OpenCV)

    我正在尝试使用一些简单的代码运行斑点检测 img cv2 imread args image height width channels img shape params cv2 SimpleBlobDetector Params para
  • 如何绘制样本的 PMF?

    是否有任何函数或库可以帮助我绘制样本的概率质量函数 就像绘制样本的概率密度函数一样 例如 使用 pandas 绘制 PDF 就像调用以下命令一样简单 sample plot kind density 如果没有简单的方法 我如何计算 PMF
  • 有人知道 10 位原始 RGB 吗?关于全视

    我正在使用 Omnivision ov5620 http electronics123 net amazon datasheet OV5620 CLCC DS 20 1 3 pdf http electronics123 net amazo
  • NLog 在发布模式下不工作

    我正在使用 NLog 记录我的 asp net mvc C 应用程序中的异常 NLog 在发布模式下不工作 在调试模式下运行时也是如此 可能是什么问题 有什么解决办法吗 我和你遇到了同样的问题 ASP NET MVC 3 NET 4 IIS
  • OrientDB 中带有子选择的根空间查询

    我正在尝试组合一个查询来查找图中节点 2 公里以内的节点 假设我有一个数据集 标记了纳斯卡线中的一些地理符号 Name Latitude Longitude Hummingbird 14 692131 75 148892 Monkey 14
  • 如何选择哪个 iPhone 型号模拟器来运行我的 React Native 应用程序?

    我正在开发 React Native 应用程序 并在 iOS 模拟器上进行测试 但是 它始终在 iPhone 6 上运行 我不知道如何切换到其他 iPhone 型号 例如 iPhone 6 Plus 或 5 我可以通过转到模拟器 gt 硬件
  • 警告:活动未启动,其当前任务已被带到前面[重复]

    这个问题在这里已经有答案了 我觉得这个问题很常见 Stackoverflow 上的许多结果都谈到了这一点 一般的答案是 因为一个旧的应用程序正在运行 并且我尝试从 Eclipse 运行一个新的应用程序 但编译没有改变 所以 Android
  • 模板类类型别名在成员声明中无法替换

    假设你有一个模板class像这样 template
  • 如何清除“运行”->“参数”菜单中的“参数”字段?

    我正在使用 CodeGear RAD Studio IDE 为了使用命令行参数测试我的应用程序 我多次使用 运行 gt 参数 菜单中的 参数 字段 但每次我为它提供一个新值时 它都无法从 下拉框 中删除 我需要清理这个字段 删除所有值 因为
  • 在现实世界中扩展 Docker 容器

    我有一些关于扩展 Docker 容器的基本问题 我有 5 个不同的应用程序 它们彼此没有连接 在拥有容器之前 我会在每个虚拟机上运行 1 个应用程序 并在云中单独扩展和缩小它们 现在 有了容器 我就可以在虚拟机之上实现隔离 因此现在我可以运
  • 如果父级未被任何其他子级引用,则删除父级

    我有一个示例情况 parent表有一列名为id 引用于child表作为外键 删除子行时 如果父行未被任何其他子行引用 如何同时删除父行 在 PostgreSQL 中9 1 或更高版本您可以使用单个语句来完成此操作数据修改CTE https
  • C# WPF 评级控件类似于 Wifi 信号指示器

    我已经搜索了很多类似于下图中的 wifi 信号强度指示器的 WPF 评级控件 但我找不到一个 我尝试自己做 这就是结果
  • iPhone 信号强度

    我知道这个问题已经被提出 但没有任何答案 在 Objective C 中 有没有办法返回信号强度 苹果不允许开发者直接访问低级无线API函数 可以在您的应用程序中包含其中一些功能 请参阅iPhone无线项目 http code google
  • 将 QHBoxLayout 的每个小部件对齐到顶部

    我试图将 QHBoxlayout 中的每个小部件对齐到顶部 但我得到的是每个小部件似乎都居中 我认为这是由于尺寸不同造成的 例如 from PyQt5 QtGui import from PyQt5 QtCore import from P
  • 自定义 Ajax 绑定无法正常工作

    我有以下自定义 Ajax 绑定代码 即使它显示第一页的数据 也会存在以下问题 The request Sorts在 Orders Read 方法中作为 NULL 出现 The request PageSizeOrders Read 方法中的
  • Altair 通过绑定范围滑块对日期时间值进行选择和转换过滤器似乎不适用于相等条件或选择器本身

    我想将范围滑块与日期时间值绑定 以仅过滤图表中特定日期的数据 使用stocks数据 我想要做的是让 x 轴显示公司 y 轴显示用户通过范围滑块选择的特定日期的股票价格 根据来自的输入这个答案 https stackoverflow com