Reputation:
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')
Upvotes: 0
Views: 2897
Reputation: 817
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')
Upvotes: 2