#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)