%matplotlib inline import pandas as pd import matplotlib.pyplot as plt import numpy as np raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 'pre_score': [4, 24, 31, 2, 3], 'mid_score': [25, 94, 57, 62, 70], 'post_score': [5, 43, 23, 23, 51]} df = pd.DataFrame(raw_data, columns = ['first_name', 'pre_score', 'mid_score', 'post_score']) df # input data, specifically the second and # third rows, skipping the first column x1 = df.ix[1, 1:] x2 = df.ix[2, 1:] # Create the bar labels bar_labels = ['Pre Score', 'Mid Score', 'Post Score'] # Create a figure fig = plt.figure(figsize=(8,6)) # Set the y position y_pos = np.arange(len(x1)) y_pos = [x for x in y_pos] plt.yticks(y_pos, bar_labels, fontsize=10) # Create a horizontal bar in the position y_pos plt.barh(y_pos, # using x1 data x1, # that is centered align='center', # with alpha 0.4 alpha=0.4, # and color green color='#263F13') # Create a horizontal bar in the position y_pos plt.barh(y_pos, # using NEGATIVE x2 data -x2, # that is centered align='center', # with alpha 0.4 alpha=0.4, # and color green color='#77A61D') # annotation and labels plt.xlabel('Tina\'s Score: Light Green. Molly\'s Score: Dark Green') t = plt.title('Comparison of Molly and Tina\'s Score') plt.ylim([-1,len(x1)+0.1]) plt.xlim([-max(x2)-10, max(x1)+10]) plt.grid() plt.show()