簡體   English   中英

在 Altair plot 中使用 alt.condition 將一些 x 標簽加粗

[英]Bold some of the x-labels with alt.condition in Altair plot

我應該如何使用 alt.condition 使一些 x-labels 加粗? 例如,使用以下代碼,我嘗試將 x 標簽“C”設為粗體,這對應於 y 軸上的最大值 9。

df = pd.DataFrame({'Name': ['A', 'B', 'C', 'D'], 'Value': [1, 5, 9, 2]})

alt.Chart(df).mark_line().encode(
    x = alt.X(
        'Name:N',
        axis = alt.Axis(
            labelFontWeight = alt.condition(alt.datum.Value == df.Value.max(), alt.value(800), alt.value(300))
        )
    ),
    y = 'Value:Q'
)

奇怪的是它總是達到 if-false 值,無論我如何更改預測。

將 x-label 'C' 設為粗體

我不確定您是否可以直接在 Altair/Vega-Lite 中執行此操作,但您可以計算最大值的名稱並與評論中建議的內容進行比較,但使用 f-strings 的自動化程度更高:

import pandas as pd
import altair as alt


df = pd.DataFrame({'Name': ['A', 'B', 'C', 'D'], 'Value': [1, 5, 9, 2]})
max_name = df['Name'][df['Value'].argmax()]

alt.Chart(df).mark_line().encode(
    x=alt.X(
        'Name:N',
        axis = alt.Axis(
            # datum.label also works
            labelFontWeight=alt.condition(f"datum.value == '{max_name}'", alt.value(800), alt.value(300))
        )
    ),
    y='Value:Q'
)

在此處輸入圖像描述

暫無
暫無

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

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