Every column of a dataframe can be plotted provided they contain numeric values. To demonstrate this we will generate a dataframe from S&P data pulled from Yahoo finance using pandas_datareader. Then we plot one of the columns of the dataframe – the column labeled ‘Adj Close’ (adjusted close). We will use pyplotlib to do the plotting but seaborn can also be used.
from matplotlib import pyplot as plt import datetime # pandas_datareader imports stock data from yahoo finance from pandas_datareader import data as web start = datetime.datetime(2018,1,5) end = datetime.datetime(2018,2,5) # get some data from yahoo finance spdrdata = web.DataReader('SPY',"yahoo",start,end) # plot the column of the dataframe called 'Adj Close' spdrdata['Adj Close'].plot() # display with pyplot plt.show()
spdrdata[‘Adj Close’].plot() selects the column and directly plots it. The plot() function automatically selects the index of the dataframe as the x-axis. The index for this particular dataframe are the dates.
>>> spdrdata.index DatetimeIndex(['2018-01-05', '2018-01-08', '2018-01-09', '2018-01-10', '2018-01-11', '2018-01-12', '2018-01-16', '2018-01-17', '2018-01-18', '2018-01-19', '2018-01-22', '2018-01-23', '2018-01-24', '2018-01-25', '2018-01-26', '2018-01-29', '2018-01-30', '2018-01-31', '2018-02-01', '2018-02-02', '2018-02-05', '2018-02-06'], dtype='datetime64[ns]', name='Date', freq=None)
