Альтаир: линейная диаграмма с заштрихованными маркерами

Я пытаюсь создать линейную диаграмму с точечными маркерами в Альтаире. Я использую пример многосерийной линейной диаграммы из документации Altair и пытаюсь чтобы объединить его с линейной диаграммой с примером заштрихованных точечных маркеров от Vega -Lite документация.

Я не понимаю, как обрабатывать аргумент mark_line. В примере с Vega мне нужно использовать «point», а затем установить для «fill» значение False.

  "mark": {
    "type": "line",
    "point": {
      "filled": false,
      "fill": "white"
    }
  },

Как мне применить это в Альтаире? Я понял, что установка «точки» на «Истина» или «{}» добавила маркер точки, но не понимал, как заставить заливку работать.

source = data.stocks()

alt.Chart(source).mark_line(
    point=True
).encode(
    x='date',
    y='price',
    color='symbol'
)

person Ragnar Lothbrok    schedule 24.03.2020    source источник


Ответы (2)


Вы всегда можете передать необработанный вегетарианский диктат любому объекту недвижимости в Альтаире:

source = data.stocks()

alt.Chart(source).mark_line(
    point={
      "filled": False,
      "fill": "white"
    }
).encode(
    x='date',
    y='price',
    color='symbol'
)

или вы можете проверить строку документации mark_line() и увидеть, что она ожидает, что точка будет OverlayMarkDef(), и использовать оболочки Python:

alt.Chart(source).mark_line(
    point=alt.OverlayMarkDef(filled=False, fill='white')
).encode(
    x='date',
    y='price',
    color='symbol'
)
person jakevdp    schedule 24.03.2020
comment
У меня есть дополнительный вопрос. Если я ищу «mark_line» в документации, я обнаруживаю, что для всех параметров установлено значение «Не определено». Вот ссылка на то, что я имею в виду. altair-viz.github.io/ user_guide / created / toplevel /. Как найти подходящие типы параметров? - person eitanlees; 25.03.2020
comment
Разобрался, mark_line ›MarkDef› OverlayMarkDef. Пришлось копать глубже! - person eitanlees; 25.03.2020
comment
В нем есть ссылка на MarkDef в котором есть более подробная информация о параметрах. - person jakevdp; 25.03.2020

Вы можете передать дополнительную информацию в параметр точки, аналогично тому, как указывается vega-lite.

import altair as alt
from vega_datasets import data

source = data.stocks()

alt.Chart(source).mark_line(
    point={
      "filled": False,
      "fill": "white"
    }
).encode(
    x='date',
    y='price',
    color='symbol'
)

введите здесь описание изображения

person eitanlees    schedule 24.03.2020