:orphan: :html_theme.sidebar_secondary.remove: .. This document is auto-generated by the altair-gallery extension. Do not modify directly. .. _gallery_bump_chart: Bump Chart ---------- This example shows a bump chart. The data is first grouped into six-month intervals using pandas. The ranks are computed by Altair using a window transform. .. altair-plot:: :remove-code: import altair as alt from vega_datasets import data import pandas as pd stocks = data.stocks() source = stocks.groupby([pd.Grouper(key="date", freq="6M"),"symbol"]).mean().reset_index() alt.Chart(source).mark_line(point = True).encode( x = alt.X("date:O", timeUnit="yearmonth", title="date"), y="rank:O", color=alt.Color("symbol:N") ).transform_window( rank="rank()", sort=[alt.SortField("price", order="descending")], groupby=["date"] ).properties( title="Bump Chart for Stock Prices", width=600, height=150, ) .. tab-set:: .. tab-item:: Method syntax :sync: method .. code:: python import altair as alt from vega_datasets import data import pandas as pd stocks = data.stocks() source = stocks.groupby([pd.Grouper(key="date", freq="6M"),"symbol"]).mean().reset_index() alt.Chart(source).mark_line(point=True).encode( x=alt.X("date:O").timeUnit("yearmonth").title("date"), y="rank:O", color=alt.Color("symbol:N") ).transform_window( rank="rank()", sort=[alt.SortField("price", order="descending")], groupby=["date"] ).properties( title="Bump Chart for Stock Prices", width=600, height=150, ) .. tab-item:: Attribute syntax :sync: attribute .. code:: python import altair as alt from vega_datasets import data import pandas as pd stocks = data.stocks() source = stocks.groupby([pd.Grouper(key="date", freq="6M"),"symbol"]).mean().reset_index() alt.Chart(source).mark_line(point = True).encode( x = alt.X("date:O", timeUnit="yearmonth", title="date"), y="rank:O", color=alt.Color("symbol:N") ).transform_window( rank="rank()", sort=[alt.SortField("price", order="descending")], groupby=["date"] ).properties( title="Bump Chart for Stock Prices", width=600, height=150, )