Вот решение, которое создает гистограммы с накоплением
import pandas as pd
import matplotlib.pyplot as plt
dict = { "date": ["2019-05-18", "2019-05-18","2019-05-18","2019-05-18","2019-05-18",
"2019-05-18","2019-05-17","2019-05-17","2019-05-17","2019-05-17",
"2019-05-17","2019-05-17","2019-05-17","2019-05-17","2019-05-16",
"2019-05-16","2019-05-16","2019-05-16","2019-05-16"],
"letter" : ["I","I", "O","I","O","I","I","I","I","I","I","I","I","O","I","I", "O", "O", "O"] }
df = pd.DataFrame(dict)
df_count = pd.crosstab(df["date"], df["letter"])
df_count.plot.bar(stacked=True)
plt.legend(title='Counts')
plt.ylabel('Date')
plt.show()