gpt4 book ai didi

r - 离散值到连续尺度

转载 作者:行者123 更新时间:2023-12-04 10:25:36 28 4
gpt4 key购买 nike

同事们早上好!现在我尝试通过 R 中的 ggplot 包构建图表 - 日本蜡烛,但代码无法正常工作。错误是:

Discrete value supplied to continuous scale.

我建议数据不显示为 ggplot 的数字,但如果我更改代码:as.vector --> as.numeric,问题确实存在不消失。你能告诉我我做错了什么吗?谢谢。

library("dplyr")
library("ggplot2")
library("quantmod")
getSymbols('AAPL')
x<-AAPL
head(x)

start=as.Date("2017-01-01")
end=as.Date("2017-09-01")
candle <- function(x, start, end){
date <- as.Date(time(x))
open <- as.vector(Op(x))
high <- as.vector(Hi(x))
low <- as.vector(Lo(x))
close <- as.vector(Cl(x))
xSubset <-data.frame('date'=date,'open'=open,'high'= high,'low'=low,'close'=close)
xSubset$candleLower <- pmin(xSubset$open, xSubset$close)
xSubset$candleMiddle <- NA
xSubset$candleUpper <- pmax(xSubset$open, xSubset$close)
xSubset$fill <- ''
xSubset$fill[xSubset$open < xSubset$close] = 'white'
xSubset$fill[xSubset$fill ==''] = 'red'
xSubset$ma200 <- SMA(xSubset$close, 200)
xSubset$ma50 <- SMA(xSubset$close, 50)
xSubset <-subset(xSubset, xSubset$date > start & xSubset$date < end)
g <- ggplot(xSubset, aes(x=date, lower=candleLower, middle=candleMiddle, upper=candleUpper, ymin=low, ymax=high))
g <- g + geom_boxplot(stat='identity', aes(group=date, fill=fill))
g <- g + geom_line(aes(x=date, y=ma50))+ geom_line(aes(x=date, y=ma200))
g
}

candle(AAPL, start, end)

最佳答案

您的问题是为 middle 提供的 NA。它需要是一个连续的值。我将其更改为与 candleUppercandleLower 长度相同的 0,错误消失了。

这有帮助吗?

关于r - 离散值到连续尺度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47364937/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com