2

当我尝试绘制 DataFrame 时,我得到了一些奇怪的结果。当我绘制起始图时,效果很好。

using DataFrames, XLSX, StatsPlots, Indicators

df = DataFrame(XLSX.readtable("Demo-sv.xlsx", "Blad3")...)
df[!, :Closeprice] .= Float64.(df.Closeprice)

数据示例

1×2 DataFrame
│ Row │ Date       │ Closeprice │
│     │ Any        │ Float64    │
├─────┼────────────┼────────────┤
│ 1   │ 2019-05-03 │ 169.96     │    

然后我绘制数据

@df df plot(df.Date, df.Closeprice)

数据帧图

但是当我尝试添加一个新图(一个简单的移动平均线 ( sma()))时,我得到了一些非常奇怪的结果。日期不再正确,图表看起来很奇怪。我不知道我的新情节是否会以某种方式覆盖原始情节,即使它应该添加到现有情节中?

我尝试使用下面的两个函数来添加新图,但两者都给出了相同的结果。

plot!(sma(df.Closeprice, n=200))
plot!(sma(sort(df, :Date).Closeprice, n=200))

但我得到了相同的结果,图表看起来很奇怪。而且我不知道是什么导致了这个问题。

在此处输入图像描述

4

1 回答 1

2

原因是因为您正在绘制新情节与开始的日期Date(1)0001-01-01. 你需要绘制plot!(df.Date, sma(df.Closeprice, n=200)).

顺便说一句,调用该条目Date并不是最佳实践,因为DateDataType 的名称已经如此。

于 2020-12-21T17:20:06.673 回答