I have a problem with getting the dates from yfinance into my matplotlib graph can somebody help/show me how to get the dates from yfinance into my matplotlib graph
import numpy as np import yfinance as yf import matplotlib.pyplot as plt import pandas as pd # function getting data for the last x years with x weeks space from checking data and specific observation. def stock_data(ticker, period, interval, observation): ticker = yf.Ticker(ticker) ticker_history = ticker.history(period, interval) print(ticker_history[observation]) #is here to show you the data that we get date = pd.date_range(ticker_history[period]) x = date y = np.array(ticker_history[observation]) plt.style.use('dark_background') plt.plot(x,y) plt.ylabel('Price($)') plt.xlabel('Date', rotation=0) plt.show() stock_data('GOOGL', '6mo', '1wk', 'Open')
Advertisement
Answer
Tested ✅
🔰You could extract the date from ticker_history[observation]
🔰 It is a Pandas Series object, so here’s how I’d do it:
import numpy as np import yfinance as yf import matplotlib.pyplot as plt import pandas as pd # function getting data for the last x years with x weeks space # from checking data and specific observation. def stock_data(ticker, period, interval, observation): ticker = yf.Ticker(ticker) ticker_history = ticker.history(period, interval) print((ticker_history[observation])) sf = ticker_history[observation] df = pd.DataFrame({'Date':sf.index, 'Values':sf.values}) x = df['Date'].tolist() y = df['Values'].tolist() plt.style.use('dark_background') plt.plot(x,y) plt.ylabel('Price($)') plt.xlabel('Date', rotation=0) plt.show() if __name__ == '__main__': stock_data('GOOGL', '6mo', '1wk', 'Open')