Python 更改图表标签轴的颜色

Python 更改图表标签轴的颜色,python,visualization,altair,vega-lite,Python,Visualization,Altair,Vega Lite,我的想象: 我已经用altair实现了上面的可视化,我想知道是否有可能像我用hook那样为标签添加与图例颜色匹配的其他颜色。我希望对y轴上的其他工具/标签也这样做,但找不到方法(每个标签的颜色不同) 下面是我用来生成此代码的代码,以防有人正在寻找如何给标签上色 heatmap = alt.Chart( new_df ).mark_rect().encode( x = alt.X('Time:O', axis=alt.Axis(labels=False)), y = a

我的想象:

我已经用altair实现了上面的可视化,我想知道是否有可能像我用hook那样为标签添加与图例颜色匹配的其他颜色。我希望对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'))))

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')

欢迎来到StackOverflow!为将来的帖子做准备,发布你的数据集或使用Altair gallery中的一个示例数据集是一个好主意。这使得其他人可以更快地测试您的代码并发布回复。谢谢!那正是我要找的!非常有用:)