1

How do I make bars over take each others in a sorted bar chart race ?
Basically the same as this question, just in python.

My minimal bar chart race code

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt

import matplotlib.animation as animation

data = np.abs(np.random.randn(200, 3))
ind = ['a', 'b', 'c']
data = pd.DataFrame(data, columns=ind)

fig, ax = plt.subplots(1, 1, figsize=(16, 6.5))
# ax.barh(ind, data[0, :], color=['r', 'g', 'b'])
def getTopXY(data, i):
    top = data.iloc[i, :].T.sort_values(ascending=False)[::-1]
    return top.values, top.index

def update(i):
    ax.clear()
    X, Y = getTopXY(data, i)
    ax.barh(Y, X, color=['r', 'g', 'b'])
    
ani = animation.FuncAnimation(fig,
                              update,
                              frames=len(data),
                              interval=10,
                              blit=False)
plt.show()
Julkar9
  • 1,508
  • 1
  • 12
  • 24

1 Answers1

1

You can try:
github.com/dexplo/bar_chart_race

You can install via pip, but that's an older version 0.1.0:
pip install bar_chart_race

But it's better to install the latest version. You can do that as follows:
pip install git+https://github.com/dexplo/bar_chart_race

Sander van den Oord
  • 10,986
  • 5
  • 51
  • 96