Добавить метки данных на гистограмму vega-lite

У меня есть довольно простая гистограмма, созданная с помощью библиотеки Python altair на основе Pandas DataFrame.

Гистограмма

Код для создания диаграммы:

Chart(df).configure(background='white').mark_bar().encode(
    X('user_id', bin=Bin(maxbins=10), title='Subscriber count'),
    Y('count(*)', title='Number of publications')
)

Это соответствует следующему синтаксису vega-lite:

{
    "encoding":
    {
        "x":
        {
            "bin":
            {
                "maxbins": 10
            },            "field": "user_id",
            "title": "Subscriber count",
            "type": "quantitative"
        },
        "y":
        {
            "aggregate": "count",
            "field": "*",
            "title": "Number of publications"
        }
    },
    "mark": "bar"
}

Единственное, что я хотел бы добавить, это фактические значения в каждой полосе (или на ней), предпочтительно повернутые на 90 ° против часовой стрелки.

Пока мне удалось найти только функцию mark_text, которая могла бы быть вариантом, если бы я использовал наслоение, но я не могу найти, как повернуть текст. Конечно, если есть способ лучше (или если он вообще невозможен), скажите! Спасибо!


person ƘɌỈSƬƠƑ    schedule 19.07.2017    source источник


Ответы (2)


Для поворота на указанную угол. По сути, вы можете сделать что-то вроде: mark_text(angle=-90, dx=10).

person Nipun Batra    schedule 31.07.2017

В этом примере из галереи документов показано, как добавить текст на панели:

import altair as alt
from vega_datasets import data

source = data.wheat()

bars = alt.Chart(source).mark_bar().encode(
    x='wheat:Q',
    y="year:O"
)

text = bars.mark_text(
    align='left',
    baseline='middle',
    dx=3  # Nudges text to right so it doesn't appear on top of the bar
).encode(
    text='wheat:Q'
)

(bars + text).properties(height=900)
person joelostblom    schedule 15.02.2021