Ограничение до 10 в гистограмме

#python #python-3.x #data-visualization #bar-chart #altair

Вопрос:

Я пытаюсь создать гистограмму, используя пакет altair на python. Я использовал приведенный ниже код и получил результат, как показано ниже

 alt.Chart(final1,title="Avg salary for IT Project Manager I in each company ").mark_bar(size=20).encode(
    alt.X("company:N", sort="-y"),
    alt.Y("average(salary)"),
    color=alt.condition(
        alt.datum.company == 'Celerity',  
        alt.value('orange'),     
        alt.value('steelblue')   
    )
).properties(width=800)
 

Вывод гистограммы

Может ли кто-нибудь помочь мне ограничить его только топ-10 компаниями, поскольку график выглядит странно, поскольку я взял все компании. Я пытался найти решение в Интернете, но не смог найти ни одного. Заранее спасибо

Комментарии:

1. Как насчет сортировки и последующей фильтрации входных данных? (например, data[:10] )

2. В качестве альтернативы, посмотрите на это: altair-viz.github.io/gallery/top_k_items.html

3. Спасибо @floatingpurr внес несколько изменений в код, приведенный в ссылке, и это сработало.

4. @rishi Не могли бы вы добавить свое решение в качестве ответа на вопрос, чтобы оно было помечено как разрешенное?

Ответ №1:

Я использовал добавленное это свойство в конце, и оно сработало для меня. Спасибо всем за помощь

 .transform_window(
    rank='rank(salary)',
    sort=[alt.SortField('salary', order='descending')]
).transform_filter(
    (alt.datum.rank < 30)
).properties(width=400, height=300)