更改图表标签轴的颜色

时间:2021-04-21 18:27:06

标签: python visualization altair vega-lite

我的可视化:

visualization

我已经使用 altair 进行了上述可视化,并想知道是否可以像使用钩子那样为标签添加其他颜色,以匹配图例的颜色。我想对 y 轴上的其他工具/标签执行相同的操作,但找不到方法(每个标签的颜色不同)。

这是我用来生成此代码的代码,以防有人在寻找如何为标签着色。

heatmap = alt.Chart(
    new_df
).mark_rect().encode(
    x = alt.X('Time:O',  axis=alt.Axis(labels=False)),
    y = alt.Y('tool:N', axis=alt.Axis(labelColor=alt.condition('datum.value == "hook"', alt.value('red'), alt.value('blue'))))

1 个答案:

答案 0 :(得分:1)

VegaLite 支持相同条件下的多个测试,但我认为用 alt.Condition 编写是不可能的。但是,您可以看到 alt.Condition 返回一个字典,因此您可以直接编写此字典并传递测试列表:

import altair as alt
import pandas as pd


source = pd.DataFrame({
    'a': ['AAA', 'BBB', 'CCC', 'DDD'],
    'b': [28, 55, 43, 50]})

# You could use datum.value instead of datum.label
label_colors = {
    'condition': [
        {'test' : 'datum.label == "AAA"', 'value': 'steelblue'},
        {'test' : 'datum.label == "BBB"', 'value': 'purple'}],
     'value': 'red'}  # The default value if no condition is met

alt.Chart(source).mark_bar().encode(
    x=alt.X('a', axis=alt.Axis(labelColor=label_colors)),
    y='b')

openGL settings