簡體   English   中英

使用 Altair mark_text 在堆疊條形圖中堆疊文本

[英]Stacked text in a stacked bar chart using Altair mark_text

我正在嘗試使用mark_text在堆疊條形圖中創建堆疊文本。 我想 label 每個欄的值為“時間”。 堆疊面積圖的對應堆疊是否可以有文字標記? 這是我創建條形圖和文本圖的方法:

bar = alt.Chart(df_pivot, title = {'text' :'How do people spend their time?', 'subtitle' : 'Average of minutes per day from time-use diaries for people between 15 and 64'}).mark_bar().transform_calculate(
    filtered="datum.Category == 'Paid work'"
).transform_joinaggregate(sort_val="sum(filtered)", groupby=["Country"]
).encode(
    x=alt.X('Time', stack='zero'),
    y=alt.Y('Country', sort=alt.SortField('sort_val', order='descending')),
    color=alt.Color('Category:N', sort=CatOrder),
    order=alt.Order('color_Category_sort_index:Q'),
    tooltip=['Country', 'Category', 'Time']
).interactive()
bar

酒吧

text = alt.Chart(df_pivot).mark_text(align='center', baseline='middle', color='black').transform_calculate(
    filtered="datum.Category == 'Paid work'"
).transform_joinaggregate(sort_val="sum(filtered)", groupby=["Country"]
).encode(
    x=alt.X('Time:Q', stack='zero'),
    y=alt.Y('Country', sort=alt.SortField('sort_val', order='descending')),
    detail='Category:N',
    text=alt.Text('Time:Q', format='.0f')
)
bar + text

欄+文字

問題:

  • 文本不在正確的堆棧中 & 文本的順序也是錯誤的。
  • Y 排序已重置,它們不再按預期排序。

並不是我不明白為什么我有這些問題。 我是這個平台的新手,源代碼來自我的筆記本: https://www.kaggle.com/interphuoc0101/times-use 非常感謝。

您的條形圖指定堆疊順序:

order=alt.Order('color_Category_sort_index:Q'),

您應該向文本層添加匹配的order編碼,以確保文本以相同的順序顯示。

以下是如何在兩個圖表中使用order的示例:

import altair as alt
from vega_datasets import data

source=data.barley()

bars = alt.Chart(source).mark_bar().encode(
    x=alt.X('sum(yield):Q', stack='zero'),
    y=alt.Y('variety:N'),
    color=alt.Color('site'),
    order=alt.Order('color_Category_sort_index:Q'),
)

text = alt.Chart(source).mark_text(dx=-15, dy=3, color='white').encode(
    x=alt.X('sum(yield):Q', stack='zero'),
    y=alt.Y('variety:N'),
    detail='site:N',
    text=alt.Text('sum(yield):Q', format='.1f'),
    order=alt.Order('color_Category_sort_index:Q')
)

bars + text

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM