使用 Altair 对标准化堆积条形图进行排序

2024-01-06

我正在尝试根据特定顺序对标准化堆积条形图进行排序。

我想要按此顺序排序的堆叠条:

Order = dict({'Paid work':1,'Education':2,'Sleep':3,'Other unpaid work':4,'Housework & Shopping':5,'Personal care':6, 'Eating and drinking':7,'TV and Radio':8,'Seeing friends':9,'Other leisures':10})

和国家/地区(Y 轴)也应按“带薪工作”条的长度排序。

但我得到的是图表左端带有“电视和广播”的订单,无法看到哪个国家/地区的人们花在“有偿工作”上的时间最多。

我的尝试:

错误代码:

alt.Chart(df).mark_bar(size=15).encode(
    alt.Y('Country:O'),
    alt.X('Time:Q', stack='normalize',sort=alt.EncodingSortField(field='Order',order='descending')),
    
    alt.Color('Category:N',sort=alt.EncodingSortField(field='Order')),
    tooltip=['Country', 'Category', 'Time']
).properties(
    width=600,
    height=600, title = {'text' :'How do people spend their time?',
'subtitle' : 'Average of minutes per day from time-use diaries for people between 15 and 64'})

我是这个平台的新手,请看一下本笔记本中的数据和我的简单代码:https://www.kaggle.com/hoangyennhi/exercise-dv https://www.kaggle.com/hoangyennhi/exercise-dv


如果您设置sort参数输入alt.Color()到任一'ascending' or 'descending',它会自动对堆叠的条形进行排序:

import altair as alt
from vega_datasets import data

source = data.barley()

alt.Chart(source).mark_bar().encode(
    x='sum(yield)',
    y='variety',
    color=alt.Color('site', sort='descending'))

但是,当您指定自定义排序顺序时,它不会按原样Vega-Lite 尚未支持 https://github.com/vega/vega-lite/issues/1734. A 此评论中描述了解决方法 https://github.com/vega/vega-lite/issues/1734#issuecomment-533223530,其中提到您可以使用一个名为的特殊字段color_<name-of-column>_sort_index,根据颜色索引排序。在这个例子中,它看起来像这样:

site_order = ['Duluth', 'Crookston', 'Waseca', 'University Farm', 'Grand Rapids', 'Morris']
alt.Chart(source).mark_bar().encode(
    x='sum(yield)',
    y='variety',
    color=alt.Color('site', sort=site_order),
    order=alt.Order('color_site_sort_index:Q'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Altair 对标准化堆积条形图进行排序 的相关文章

随机推荐

  • 编程范式、设计模式和应用程序架构之间的区别?

    我没有编程背景 经常遇到编程范式 设计模式和应用程序架构等术语 虽然我认为我对这些术语的含义有一个模糊的理解 但如果有人能够澄清每个术语是什么 它们与其他术语有何不同以及这些概念如何应用于 Objective C 我将不胜感激 编程范式 类
  • 如何显示输入类型=“datetime-local”的值?

    我的代码是这样的 div test div div div
  • 如何确定 QAction 的来源?

    我想知道是否有任何简单 优雅的方法来确定 QAction 的来源 我的意思是我有一个 QAction 它被添加到多个 QWidget 带有QWidget addAction http doc qt nokia com latest qwid
  • 以编程方式清除cloudflare缓存

    在将请求发送到 node js api 后 我尝试以编程方式清除单个 url 的 cloudflare 缓存 我正在使用https github com cloudflare node cloudflare https github com
  • 尝试计算手机解锁的次数

    几个月前我对此感到厌倦 但失败了 我想做的是计算用户解锁手机的次数并将其显示在屏幕上 但每次解锁手机时我都会得到模糊的数字 我的代码如下 我的主要活动 oncreate Override protected void onCreate Bu
  • 将文本插入传入电子邮件 Outlook 2013 锁定只读

    我正在努力通过 VBA 在传入电子邮件中插入字符串 该例程在发送邮件时工作正常 并且如果用户单击 操作编辑 它将对传入邮件起作用 问题是传入邮件被锁定为只读模式 在过去的 13 5 个小时里我到处寻找 在早期版本的 Outlook 中这是可
  • 如何在具有多个峰值的数据集中找到 FWHM?

    我正在使用一个 Python 脚本 它可以在特定的值范围内沿着一维轮廓查找峰值 或在我的例子中为谷值 的索引 我的目标是测量每个感兴趣的山谷的半高宽 这是一维轮廓的示例 https i stack imgur com UTj33 png 这
  • 当应用程序在后台时,android O 中的 onMessageReceived 不会被调用

    我正在从我的服务器发送数据有效负载通知 这是示例 url https fcm googleapis com fcm send to userToken data some json here 通过这种方式 即使应用程序没有运行 我也可以在所
  • 内省和反思有什么区别?

    任何人都可以从语言 环境不可知论的角度解释这两个概念之间的区别吗 编程语言是否需要满足一组条件才能进行反思和 或内省 如果有的话 这些条件是什么 维基百科文章 http en wikipedia org wiki Type introspe
  • 更新错误“模块”对象不可调用后,pip 不再工作

    pip 更新后 pip 已完全停止工作 Z gt pip install matplotlib Traceback most recent call last File c program files python37 lib runpy
  • 在 U-Boot 中使用 I2C 读取多个字节

    我的 Freescale p1022tw 板的 I2C 驱动程序有问题 U Boot 的控制台上有一个从 I2C 设备读取的命令 i2c md chip address 0 1 2 of objects 当我从 id 为 0x60 地址为
  • 为什么使用 Object.create() 和 console.log() 时不显示属性?

    当我使用文字语法创建对象时 将对象打印到控制台会显示该对象foo和p财产 foo foo p 42 console log foo console log foo p Outputs p 42 当我使用 Object create 语法时
  • SWI序言中#=和=:=有什么区别

    What is the difference between and in SWI prolog I have found the definition from SWI prolog but still confused about it
  • php 析构函数在流畅的界面下调用得太早

    我发现 php 析构函数有一个非常奇怪的事情 基本上我有一个数据库管理类 它使用工厂加载适配器来定义应该加载哪个适配器 mysql mysqli等 我只会写下代码中有趣的部分 因为类本身更长 但代码不涉及当前的麻烦 该问题仅发生在 mysq
  • 从 git 中删除但保留在工作目录中

    我添加了一堆要由 git 跟踪的文件 但它们被错误地添加 并提交 它们应该存在于工作目录中 它们是我的 IDE 使用的临时文件 但不被 git 跟踪 我现在已经创建了一个 gitignore 文件并添加了适当的条目 但是将文件从 git 跟
  • KnexJS 迁移及相关种子数据

    我在学习 BookshelfJS KnexJS 从 SequelizeJS 切换 的过程中遇到了将数据导入到通过 KnexJS 中的迁移功能创建的多个表中的问题 有4张桌子 servers operating systems applica
  • 点击特定选项卡即可获取对应的详细信息

    html部分 div class tab content div class tab pane active div class row fluid div class span9 offset1 div div div div
  • 如何从网页访问 Dialogflow V2 API?

    我有一个网页 我想在其中使用对话流聊天机器人 这是一个自定义聊天窗口 因此我不想使用一键集成 我能够访问聊天代理V1 API使用 javascript ajax 通过传递客户端访问令牌在请求标头中 但我不知道该怎么做V2 API 我不清楚对
  • Android内部存储和本地目录中的文件

    Android 为您提供 getDir 我认为这意味着我将拥有 myappspace somedirectory 来在您的应用程序空间中创建一个目录 但是 当 android 给你一个错误时 如果你在 openFileOutput Inpu
  • 使用 Altair 对标准化堆积条形图进行排序

    我正在尝试根据特定顺序对标准化堆积条形图进行排序 我想要按此顺序排序的堆叠条 Order dict Paid work 1 Education 2 Sleep 3 Other unpaid work 4 Housework Shopping