Charts 牛郎星散点图

Charts 牛郎星散点图,charts,altair,Charts,Altair,我正在寻找一种基于多种名义条件制作点图的方法。我在x和y上绘制了两个值,但我想根据年份和“类型”区分这些点 目前,我的做法是将年份指定给颜色,而将“类型”指定给形状 color=alt.condition(selection, alt.Color('Date:T'), alt.value('lightgray'), scheme='red' ) shape = alt.Shape('type:N') 有几个问题: 是否可以更改点的颜色方案而不是默认颜色,例如红色/蓝色/黑色等 是否可以为“类型

我正在寻找一种基于多种名义条件制作点图的方法。我在x和y上绘制了两个值,但我想根据年份和“类型”区分这些点

目前,我的做法是将年份指定给颜色,而将“类型”指定给形状

color=alt.condition(selection, alt.Color('Date:T'), alt.value('lightgray'), scheme='red' )
shape = alt.Shape('type:N')
有几个问题:

  • 是否可以更改点的颜色方案而不是默认颜色,例如红色/蓝色/黑色等
  • 是否可以为“类型”指定一种颜色方案/阴影(而不是形状)
  • 是否可以更改点的颜色方案而不是默认颜色,例如红色/蓝色/黑色等
  • 是的,看。您可以使用任何内置函数,也可以使用此处讨论的方法定义自己的函数。从您的示例中,它可能看起来像这样:

    color=alt.condition(
      selection,
      alt.Color('Date:T', scale=alt.Scale(scheme='reds')),
      alt.value('lightgray')
    )
    
    opacity='type:N'
    
  • 是否可以为“类型”指定一种颜色方案/阴影(而不是形状)
  • 不,没有基于数据中的两个字段应用两个色标的内置方法(标记如何在指定给它的两种颜色之间进行选择?)一种可能的方法是对第二个字段使用不透明编码,这反映在标记的亮度中。对于您的示例,它可能如下所示:

    color=alt.condition(
      selection,
      alt.Color('Date:T', scale=alt.Scale(scheme='reds')),
      alt.value('lightgray')
    )
    
    opacity='type:N'
    

    嗨,杰克,谢谢你的快速回复。因为#1,我无法改变任何事情。这就是我试图做的:color2=alt.condition(selection,alt.Color('typex:N')、alt.value('white')、scale=alt.scale(scheme='dark2'))。但无论我在scheme下输入什么,它都不会改变任何东西,不管它是日期的时间尺度还是类型的名义尺度。对于#2,我的意思是:对于日期,它仍然遵循其他字段类型的颜色-但应用从浅到深的缩放。请参阅我编辑的答案:我添加了示例代码片段。谢谢Jake!现在可以了。让我抓狂的是,它进入了颜色而不是条件。虽然我仍然不清楚为什么我需要使用alt.scale和scheme无法工作