Julia 绘图中的奇怪日期

Strange dates in plotting graph in Julia

当我尝试绘制 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))

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

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

顺便说一下,调用条目 Date 不是最佳做法,因为 Date 已经是数据类型的名称。