首页 > 解决方案 > 如何更改我的绘图图的 X 轴以表示在我的 pandas 数据框中存储为行标题的日期?2020 年 Python 财务食谱

问题描述

我正在阅读 Packt 于 2020 年出版的《Python For Finance Cookbook》一书。在第 1 章中,plotly 用于绘制股票价格、回报和对数回报。然而,在本书出版后立即更新了他们的文档,所以我很难复制这个情节。这是 repo 的链接https://github.com/erykml/Python-for-Finance-Cookbook/tree/master/Chapter%2001。我想使用相同的 x 轴绘制 3 个线图,这将是日期。我知道了,但我无法更改 x 轴以反映年份,它停留在计算 1990 年到 2020 年的天数上。谢谢。

import pandas as pd 
import yfinance as yf
import numpy as np
import cufflinks as cf
from plotly.offline import iplot, init_notebook_mode
import plotly.graph_objects as go
import plotly.express as px
from plotly.subplots import make_subplots
init_notebook_mode()

df = yf.download('MSFT', auto_adjust = False, progress=False)
df = df.loc[:, ['Adj Close']]
df.rename(columns={'Adj Close': 'adj_close'}, inplace=True)

df['simple_rtn'] = df.adj_close.pct_change()
df['log_rtn'] = np.log(df.adj_close / df.adj_close.shift(1))

df.dropna(how = 'any', inplace = True)


px.line(data_frame=df, title='MSFT time series')

fig = make_subplots(rows=3, cols=1, 
                    shared_xaxes=True, 
                    vertical_spacing=0.02)

fig.add_trace(go.Scatter(y = df['adj_close']),
              row=1, col=1)

fig.add_trace(go.Scatter(y = df['simple_rtn']),
              row=2, col=1)

fig.add_trace(go.Scatter(y = df['log_rtn']),
              row=3, col=1)


标签: pythonplotlyfinanceyahoo-financeplotly-python

解决方案


我明白了,大声笑非常简单的修复。我刚设置x=df.index


推荐阅读