【问题标题】:MPF Ploting CandleStick强积金绘图烛台
【发布时间】:2018-06-04 11:34:34
【问题描述】:

我需要帮助来理解以下代码并解决错误。

import matplotlib.finance as mpf
import pandas_datareader as web
import datetime
import matplotlib.pyplot as plt

import pandas as pd

import matplotlib.dates as mdates

start = datetime.datetime(2018, 5, 1)
end = datetime.datetime(2018, 5, 31)
df = web.get_data_morningstar("nvda",  start, end)
df.reset_index(inplace=True)

df = df.drop('Symbol',axis=1)

df.Date = pd.to_datetime(df.Date)

df = df[['Date', 'Open', 'High', 'Low', 'Close', 'Volume']]

df["Date"] = df["Date"].apply(mdates.date2num)
quotes = [tuple([df.Date,
                 df.Open,
                 df.High,
                 df.Low,
                 df.Close,
                 df.Volume]) ]
#print(quotes)
fig, ax = plt.subplots(figsize=(8, 5))
#fig.subplots_adjust(bottom=0.2)
mpf.candlestick_ohlc(ax, quotes, width=0.6, colorup='b', colordown='r')
plt.grid(True)
ax.xaxis_date()
ax.autoscale_view()
plt.setp(plt.gca().get_xticklabels(), rotation=30)
plt.show()

错误是“ValueError:一个系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。”错误发生在烛台函数调用上。

【问题讨论】:

  • 您能否提供一些示例性数据,以便我们试用代码?
  • @Dux, print(quotes) 将给出 [(0 736815.0 1 736816.0 2 736817.0 3 736818.0 名称:日期,dtype:float64, 0 224.57 1 227.00 2 227.60 3 231.83 名称:Open,dtype:float ,0 227.2500 1 228.8000 2 234.0500 3 239.1889名称:高,dtype:float64,0 222.20 1 225.25 2 225.25 2 225.77 3 231.13名称:低,dtype:float64,0227.14 1 227.14 1 226.14 1 226.31 2 226.31 2 232.99 3 239.9 3 239.06 3 239.06 3 239.06 3 239.06 coles,dy:floo,dy:floo,dy: 6344727 1 6706185 2 11078640 3 10016538 名称:卷,数据类型:int64)]
  • 可能问题在于quotes 是一个只有一个元素(元组)的列表,您应该将其更改为quotes = tuple([df.Date, df.Open, df.High, df.Low, df.Close, df.Volume])。我不确定,试试吧。

标签: python pandas matplotlib


【解决方案1】:

问题是引号。 mpf.candlestick_ohlc 需要一个包含如下元素的列表或元组:

[date, open, high, low, close, volume]

但是,您的引号只有一个元素,即元组。如果您删除外部列表,您的引号有 6 个元素,datesopens、...

要解决此问题,请创建如下引号:

quotes = df.values.tolist()

这样,它会生成一个带有 4 个烛台的图形(此处未显示,因为我必须大量调整您的数据才能使其运行)。

【讨论】:

    猜你喜欢
    • 2021-02-28
    • 1970-01-01
    • 2019-06-05
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2018-12-16
    • 2014-01-29
    相关资源
    最近更新 更多