1

我正在处理看起来像的股票数据daily.head

在此处输入图像描述

我的代码是:

import pandas as pd
import mplfinance as mpf
import matplotlib.pyplot as plt
data = pd.read_csv('/content/drive/MyDrive/python/TEchAnalysis.csv')

figdims=(15,10)
fig , ax = plt.subplots(figsize=figdims)
mpf.plot(daily , type='candle' , mav=(5,10,20,50,100) ,volume=True , ax=ax )

我有错误

ValueError:“volume”必须是“matplotlib.axis.Axes”类型

请有人可以解释一下这个错误以及如何解决它?

4

2 回答 2

1

如果您指定外轴,您还应该指定轴以显示体积。根据有关外轴的文档:

请注意以下事项:

  • 使用 kwargax=传递您想要的任何 matplotlib 轴mpf.plot()
  • 如果您还想绘制 volume,则必须为该卷传入一个 Axes 实例,因此请volume=True使用 volume=而不是<myVolumeAxesInstance><myVolumeAxesInstance>
  • 如果您指定ax=formpf.plot()那么您还必须指定ax=for 所有对 的调用make_addplot()
于 2020-12-05T16:20:51.197 回答
0

尝试这个:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import mplfinance as mpf
import pandas as pd
import yfinance as yf
%matplotlib inline

df = yf.download('aapl', '2015-01-01', '2021-01-01')
df.rename(columns= {'Adj Close': 'Adj_close'}, inplace= True)
df1 = df.copy().loc['2015-01':'2015-02', :]

fig, ax1 = plt.subplots(figsize= (12, 6))
fig.set_facecolor('#ffe8a8')
ax1.set_zorder(1)
ax1.grid(True, color= 'k', linestyle= '--')
ax1.set_frame_on(False)
ax2 = ax1.twinx()
ax2.grid(False)
mpf.plot(df1, ax= ax1, type= 'candle', volume= ax2, xlim= (df1.index[0], 
df1.index[-1]))
plt.show()

它工作得很好,提供了一些自定义选项。这是输出: 在此处输入图像描述

于 2021-08-01T07:53:02.503 回答