Altair 颜色条形图(按值)未显示

2024-05-28

尝试使用基于图表中未显示的值的条件为条形图着色。

我得到了这个数据框:

我想将条形颜色设置为绿色,如果row.presented_value > row.coloring_value,否则颜色为红色。

我看到了条件的例子常数值 https://stackoverflow.com/questions/60331614/how-to-highlight-a-bar-by-datetime-value-with-altair and by 显示值 https://stackoverflow.com/questions/59427304/dynamic-name-in-altair-alt-condition,但无法让它为我工作。

在下面的代码示例中我想要两者foo and bar变红。

import pandas as pd

df = pd.DataFrame({'name':['bar','foo'],
                  'presented_value':[10,20],
                  'coloring_value':[15,25]})

(alt.Chart(df, height=250, width=375).mark_bar()
 .encode(x='name', y=alt.Y('presented_value', axis=alt.Axis(orient='right')),
         color=alt.condition(alt.datum['presented_value'] > df.loc[df.name==alt.datum.x,
                                                        'coloring_value'].values[0],
        alt.value('lightgreen'),alt.value('darkred'))
        )
)

更改第一个值coloring_value to <10两个条都会是绿色的,尽管我只期望bar是绿色的。

df = pd.DataFrame({'name':['bar','foo'],
                  'presented_value':[10,20],
                  'coloring_value':[5,25]})

(alt.Chart(df, height=250, width=375).mark_bar()
 .encode(x='name', y=alt.Y('presented_value', axis=alt.Axis(orient='right')),
         color=alt.condition(alt.datum['presented_value'] > df.loc[df.name==alt.datum.x,
                                                        'coloring_value'].values[0],
        alt.value('lightgreen'),alt.value('darkred'))))

仍然没有按正确的值着色。关于如何完成它有什么想法吗? 提前致谢!


条件表达式不能使用 pandas 结构;他们必须映射到维加表达式 https://vega.github.io/vega/docs/expressions/。 Altair 提供alt.datum and alt.expr对象作为此的方便包装。

在您的情况下,当您想要比较行中的两个值时,最好的方法是直接比较它们:

(alt.Chart(df, height=250, width=375).mark_bar()
 .encode(
    x='name',
    y=alt.Y('presented_value', axis=alt.Axis(orient='right')),
    color=alt.condition(
      alt.datum.presented_value > alt.datum.coloring_value,
      alt.value('lightgreen'),
      alt.value('darkred')
    )
  )
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Altair 颜色条形图(按值)未显示 的相关文章

  • Streamlit 讲解专栏(三):两种方案构建多页面

    文章目录 1 前言 2 第一种方案 使用Session State实现多页面交互 2 1 Session State简介 2 2 多页面应用的基本结构 2 3 实现多页面交互的代码示例 2 4 Session State机制的优缺点 3 第
  • 让我们的streamlit网页表格美起来的方法

    大家好 在我们的Streamlit交流群中经常听到小伙伴们吐槽Streamlit自带的表格样式太不友好了 不仅布局不好 如表格内容无法全部显示出来 每列的内容无法居中显示 主题色也不好看 表格行数信息从0开始不符合大家习惯等 针对这个问题
  • 使用 Altair 制作仪表板

    我想使用优秀的 Altair 库来创建仪表板 有没有办法创建仪表板而不显示任何代码 我在这里看到一些非常好的例子 https altair viz github io case studies exploring weather html但
  • 在 Altair 中生成“闪避”或“并排”条形图/柱形图?

    如果之前有人问过这个问题 我深表歉意 但我正在寻找一种方法来创建 躲避 的条形图 language from ggplot2 在 python 中使用 Altair 库 我知道 Altair 有这个例子 import altair as a
  • 使用 Altair mark_text 在堆叠条形图中堆叠文本

    我正在尝试使用mark text在堆叠条形图中创建堆叠文本 我想用 时间 的值标记每个条 堆积面积图的相应堆栈中是否可以有文本标记 以下是我创建条形图和文本图的方法 bar alt Chart df pivot title text How
  • 基于 Altair 中的 alt.Color 字段排序

    我正在尝试根据水平条形图所属的组对其进行排序 我已经包含了数据框 我认为可以进行分组排序的代码和图像 该图表目前是根据物种列按字母顺序排序的 但我希望它按组排序 以便所有 坏 都在一起 同样 所有 好 都在一起 理想情况下 我想更进一步 以
  • 处理 Altair 分区统计图中的缺失值/空值

    我使用美国州级数据在 Altair 中创建了一张分区统计图 但是 我没有某些州的数据 默认情况下 这些州根本不会出现在地图上 这是一个示例图像 我希望零状态在地图上显示为灰色 Altair 文档显示了另一张符合此描述的地图 我的问题是如何使
  • 设置选择框的默认值

    我是流媒体新手 我尝试为 sidebar selectbox 设置默认值 代码如下 我很感激你的帮助 先感谢您 st sidebar header Settings fichier st sidebar selectbox Dataset
  • 未找到隧道错误 Pyngrok Streamlit 协作

    我正在开发一个用户界面streamlit并使用pyngrok来自科拉布 一切都工作正常 直到几天前开始出现隧道未找到错误 我正在使用下面的代码 我也升级了pyngrok并尝试过 但同样的问题仍然存在 对于整个 UI 构建和 Colab 来说
  • Altair 图表上方的动态文本

    在下面代码生成的图表中 用户可以将鼠标悬停在线段上以在图表上显示一个点 并且该点的信息显示在图表上方 import altair as alt import numpy as np import pandas as pd df pd Dat
  • Altair 交互式线图,单击右侧图标时使线弹出并突出显示

    我一直在尝试在 jupyter 实验室上使用 Altair 制作一些交互式绘图 I had reached this stage where the results is below 正如您所看到的 当该行突出显示时 它不会弹出到前面 如何
  • 有没有办法在动态 Altair 图表中保持梯度比例恒定?

    我在 Altair 中有以下代码 可以生成动态分区统计图 columns str year for year in range 20200307 20200331 slider alt binding range min 20200307
  • 使用日期时如何在 Altair 中获得选择间隔的初始值?

    我试图在 Altair 图中为选择间隔设置初始值 但我一直无法弄清楚 这是一个代码片段 df pd DataFrame date 0 2005 03 01 1 2005 04 01 2 2005 05 02 values 0 89 2506
  • 在 python Altair 图中的热图中添加间距

    是否可以在使用创建的热图中添加一些间距mark rect 在 Altair python 图中 图 1 中的热图将转换为图 2 中的热图 您可以假设这是来自dataframe每列对应一个变量 我故意像这样画白条以避免任何硬编码的索引解决方案
  • 在 Altair 中将图例分成多列

    抱歉无法提供大量代码 一切都是互连的 现在不可能 我的问题是我创建了一个点图作为 交互式图例 legend alt Chart source mark point encode y alt Y STATE axis alt Axis ori
  • Altair 为交互式散点图罐添加日期滑块

    有人尝试过使用日期作为 Altair 交互式散点图的滑块吗 我正在尝试重现与 gapminder 散点图类似的图 1 我尝试使用日期而不是年份过滤器 例如 2020 01 05 并出现以下错误 altair vegalite v4 sche
  • 如何使用 Altair 显示百分比直方图而不是计数

    如何使用 Altair 和 Pandas 获取总数百分比直方图而不是计数直方图 我现在有这个 我通过这样做得到了 d age 12 32 43 54 32 32 12 dfTest pd DataFrame data d alt Chart
  • Altair 限制条数

    假设我有一个像这样的数据框 label counts 4 4 8 5 5 7 6 6 6 7 7 5 0 0 4 1 1 3 2 2 2 3 3 1 我想用 Altair 制作一个条形图 其中条形的高度是计数 标签是标签 如果我想要前 3
  • Altair 颜色条形图(按值)未显示

    尝试使用基于图表中未显示的值的条件为条形图着色 我得到了这个数据框 我想将条形颜色设置为绿色 如果row presented value gt row coloring value 否则颜色为红色 我看到了条件的例子常数值 https st
  • 如何在 Altair 中水平排列两个多面并排图表?

    Altair 为使用分面方法的分面图提供了可爱的功能 例如 以下数据集可以很好地可视化 print df Year Profile Saison Pos to csv Year Profile Saison Pos 0 2017 6 0 S

随机推荐

  • 使用 XAML 文件作为矢量图像源

    我希望能够使用矢量图形 最好在 XAML 中定义 作为图像控件的源 就像我当前可以使用 PNG 等光栅图像一样 这样我就可以轻松地混合和匹配位图和矢量图像 如下所示
  • Android Studio 模拟器无法加载 Windows 10

    我在 Windows 10 上全新安装了 android studio 其中包含 android api 22 的所有软件包 当我运行模拟器时 我收到以下消息 C Users admin AppData Local Android sdk
  • itertools.accumulate() 与 functools.reduce()

    在Python 3 3中 itertools accumulate http docs python org 3 3 library itertools html itertools accumulate 通常会重复对提供的可迭代应用加法运
  • SQL 性能,使用 OPTION (FAST n)

    谁能告诉我在 SQL 查询中使用 OPTION FAST n 有什么缺点 比如我这么快就抓取了10万条记录 但这对SQL Server的其他进程有影响吗 我正在接近我的问题 我必须每周运行一次数据处理 因此 第一个结果会在 5 7 秒后出现
  • 创建一个简单的调度程序

    我将如何创建一个简单的调度程序 将每个项目延迟一秒 我想将它用于 Observable 是的 我知道这可以通过多种其他方式完成 我只是想使用自定义调度程序来完成它 这里有一些相关教程 http codebetter com matthewp
  • XDocument 似乎不存在于 System.Xml 命名空间中

    我遇到了我认为可能是一个非常简单的问题 在开发我的第一个 WP7 应用程序时 我已经进入了访问我的站点 api 并解析 XML 的阶段 但是我在尝试使用 XDocument 时遇到了困难 我四处搜索并找到了这个示例代码 将 XML 文件从网
  • 将类型安全配置conf文件传递给DataProcSparkOperator

    我正在使用 Google dataproc 提交 Spark 作业 并使用 google Cloud Composer 来安排它们 不幸的是 我面临着困难 我依靠 conf文件 类型安全配置文件 将参数传递给我的 Spark 作业 我正在将
  • 如何在linux中使用iptables将http和https流量转发到透明代理[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • 尽管提供了群落矩阵,纯素食 DBRDA 物种得分为空

    我使用纯素社区生态包在 R 中执行了 基于距离的冗余分析 dbRDA 我想在 dbRDA 结果的排序图中显示 鱼类 营养群体对样本之间差异 营养级鱼类组合的丰度数据 的相对贡献 IE 将箭头和营养级组名称叠加到排序图上 其中箭头线的长度表示
  • 如何设计Android建筑物室内地图? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想设计一个 Android 应用程序 它可以帮助学生和其他人在特定建筑物 一层 中导航 显示前往教室的步行方向 我需要帮助 这是您通
  • UIToolBar 位于 UITabBar 之上?

    在 照片 应用程序的 相机胶卷 部分中 您可以单击右上角的按钮来编辑照片 这将底部选项卡栏替换为 UIToolBar 中的三个新按钮 我想做类似的事情 但我无法让我的 UIToolBar 位于选项卡栏的顶部 有没有办法指定图层顺序 或者我需
  • 从 JSONPath 中的过滤表达式中选取第 N 个项目

    我一直在尝试使用 JSONPath 过滤 JSON 中的特定元素 然后仅选择返回的结果数组中的第一项 我的基本 JSONPath 看起来像这样 store book category fiction price 我想添加这个 0 像这样过滤
  • Python 不擅长 XML 吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android Volley:意外响应代码 405

    我的 Android Volley JsonObjectRequest 遇到 onErrorResponse 并出现以下问题 BasicNetwork performRequest Unexpected response code 405
  • 如何在 Swift Joint 中创建自定义链?

    我正在尝试创建一个LocationManager组合的包装 我有一个发布者和一些触发发布者的函数 但是 我想将它们与自定义命令组合在一起 这是我到目前为止得到的 available OSX 10 15 iOS 13 tvOS 13 watc
  • 为什么我需要一块一块地读取文件来缓冲?

    我看到了以下用于将文件放入数组的代码 该数组又用作将其插入 blob 列的 SQL 命令的参数 using FileStream fs new FileStream soubor FileMode Open FileAccess Read
  • 是否可以删除 BitBucket 上的拉取请求?

    我找不到在 BitBucket 上删除 PR 的选项 我是否忽略了某些事情或者这确实不可能 您可以拒绝具有相同结果的拉取请求 停止 删除 PR
  • 在Python中创建一个二维矩阵

    我创建了一个 6x5 二维数组 最初每个单元格中只有 None 然后 我读取一个文件 并在读取文件时用数据替换 None 我首先创建空数组 因为数据在我正在读取的文件中的顺序未定义 我的第一次尝试是这样做的 x None 5 6 这导致了一
  • 存储整数列表的最有效方法

    我最近一直在做一个项目 其中一个目标是使用尽可能少的内存来使用 Python 3 存储一系列文件 除了一个整数列表之外 几乎所有文件都占用很少的空间 大致333 000整数长且整数可达约8000在尺寸方面 我目前正在使用pickle存储列表
  • Altair 颜色条形图(按值)未显示

    尝试使用基于图表中未显示的值的条件为条形图着色 我得到了这个数据框 我想将条形颜色设置为绿色 如果row presented value gt row coloring value 否则颜色为红色 我看到了条件的例子常数值 https st