altair-viz / altair_notebooks

Tutorial and Examples Jupyter Notebooks for Altair
BSD 3-Clause "New" or "Revised" License
221 stars 93 forks source link

Added Top K items bar chart as notebook examples #20

Closed eleijonmarck closed 5 years ago

eleijonmarck commented 5 years ago

Example of Top K Items of a Bar chart.

Related issue: https://github.com/altair-viz/altair/issues/1306

Taken from the vega-lite examples: https://vega.github.io/vega-lite/docs/window.html#top-k

Question: In the example vega-lite, they use mean/average for sorting the x-axis. Why does the graph show a difference when setting count?

import altair as alt
from vega_datasets import data
movies = data.movies()

# Top 10 cars by miles per gallon
alt.Chart(
    movies,
).mark_bar().encode(
    x=alt.X('Title:N', sort=alt.EncodingSortField(field="IMDB_Rating", op="mean", order='descending')),
    y=alt.Y('IMDB_Rating'),
    color=alt.Color('IMDB_Rating')

).transform_window(
    rank='rank(IMDB_Rating)',
    sort=[alt.SortField('IMDB_Rating', order='descending')]
).transform_filter(
    (alt.datum.rank < 10)
)
import altair as alt
from vega_datasets import data
movies = data.movies()

# Top 10 cars by miles per gallon
alt.Chart(
    movies,
).mark_bar().encode(
    x=alt.X('Title:N', sort=alt.EncodingSortField(field="IMDB_Rating", op="count", order='descending')),
    y=alt.Y('IMDB_Rating'),
    color=alt.Color('IMDB_Rating')

).transform_window(
    rank='rank(IMDB_Rating)',
    sort=[alt.SortField('IMDB_Rating', order='descending')]
).transform_filter(
    (alt.datum.rank < 10)
)
eleijonmarck commented 5 years ago

merged. closing pull request