有什么方法可以在 python 上同时调用和可视化列 Adj Close 之外的更多内容?

问题描述

我已经完成了这部分代码,但我希望能够添加更多列,例如成交量、开盘价、最高价。

import pandas as pd
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
plt.style.use("fivethirtyeight")
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
assets = ["LAC","NIO"]
weights = np.array([0.5,0.5])
stockStartDate = "2016-01-01"
today = datetime.today().strftime("%Y-%m-%d")
today
df = pd.DataFrame()
for stock in assets:
    df[stock] = web.DataReader(stock,data_source ="yahoo",start = stockStartDate,end = today)["Adj Close"]

解决方法

不太确定你想做什么,但本质上如果你想灵活地可视化更多的变量,将数据保存为长格式会更容易,一列(我在下面使用了stock)表示数据来源:

import pandas as pd
import numpy as np
import pandas_datareader.data as web
import datetime

assets = ["LAC","NIO"]
stockStartDate = "2016-01-01"
today = datetime.date.today().strftime("%Y-%m-%d")

df = []
for stock in assets:
    x = web.DataReader(stock,data_source ="yahoo",start = stockStartDate,end = today)
    x['stock'] = stock
    df.append(x)

df = pd.concat(df)

然后动态旋转它以进行绘图:

df.pivot(values='High',columns='stock').plot.line()

enter image description here

或者使用seaborn:

import seaborn as sns
sns.lineplot(x = df.index,y = "High",hue = 'stock',data=df)

enter image description here