# figure size
plt.figure(num=None, figsize=(11, 8), dpi=80, facecolor='w', edgecolor='k')
# "up" dataframe will store the stock_prices when the closing stock price is
# greater than or equal to the opening stock prices
up = stock_prices[stock_prices.close >= stock_prices.open]
# "down" dataframe will store the stock_prices
# when the closing stock price is
# lesser than the opening stock prices
down = stock_prices[stock_prices.close < stock_prices.open]
# When the stock prices have decreased, then it
# will be represented by blue color candlestick
col1 = 'g'
# When the stock prices have increased, then it
# will be represented by green color candlestick
col2 = 'r'
# Setting width of candlestick elements
width = .3
width2 = .03
# Plotting up prices of the stock
plt.bar(up.index, up.close-up.open, width, bottom=up.open, color=col1)
plt.bar(up.index, up.high-up.close, width2, bottom=up.close, color=col1)
plt.bar(up.index, up.low-up.open, width2, bottom=up.open, color=col1)
# Plotting down prices of the stock
plt.bar(down.index, down.close-down.open, width, bottom=down.open, color=col2)
plt.bar(down.index, down.high-down.open, width2, bottom=down.open, color=col2)
plt.bar(down.index, down.low-down.close, width2, bottom=down.close, color=col2)
# Grids
plt.minorticks_on()
plt.grid(which='major', color='black', ls = '-', lw = 0.5)
plt.grid(which='minor', color='blue', ls = '-', lw = 0.30)
# rotating the x-axis tick labels at 30degree
# towards right
plt.xticks(rotation=30, ha='right')
# displaying candlestick chart of stock data
plt.show()