在 Altair 中查看当前配色方案

See current color scheme in Altair

绘制包含多个图层的图表时,某些图层的颜色不匹配。

我尝试使用 alt.Scale 修复此问题。问题是颜色与我选择的主题不匹配。我希望能够使用当前的主题颜色,但能够为图表中的每个元素选择使用哪种颜色。

特别是,这是我的代码:

make_era_labels = lambda df_slice, mode : \
    alt.Chart(df_slice).mark_text(
        align='right' if mode == 'high' else 'left',
        baseline='top',
        size = 14,
        fontWeight='bold',
        angle = 270,
        dx = -20,#120,
        dy=20,#25
    ).encode(
      text='Era',
      x=alt.X('start', title = x_axis),
      y=alt.value(0 if mode =="high" else 600),  # pixels from top
      color=alt.Color('Era', 
                      legend = None, 
                      scale=alt.Scale(
                          domain=['Pre Deep Learning Era', 'Deep Learning Era', 'Large Scale Era'],
                          range=['yellow', 'blue', 'red']) if large_scale_action == 'isolate' else alt.Undefined
                      )
    )

  midpoint = pd.to_datetime(f"{(year_start.year + year_end.year) // 2}-01-01")
  left_era_labels = make_era_labels(eras_df[eras_df['start'] < midpoint], "high")
  right_era_labels = make_era_labels(eras_df[eras_df['start'] > midpoint], "low")

由于我是分两部分做图,所以颜色不协调,方案的第一种颜色重复了。但是当我自己用 alt.Scale 选择颜色时,颜色不再符合主题。

而不是 range=['yellow', 'blue', 'red'] 我想要与当前主题相对应的颜色。比如现在的yellow就太亮了

我尝试使用 alt.themes.get() 但毫无帮助 returns VegaTheme('fivethirtyeight'),我正在使用的主题名称。

您可以前往 https://vega.github.io/vega/docs/schemes/ and hovering the names in the color schemes (also defined here https://github.com/vega/vega/blob/v5.21.0/packages/vega-scale/src/palettes.js)

查看所有颜色

这个问题有一些相关的回答Altair: Selecting a color from a Vega color scheme for plot