- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Shiny 的新手,在这里完成了 Shiny 教程: http://shiny.rstudio.com/tutorial/
在第 6 课中,本教程向我们展示了如何创建一个应用程序,您可以在其中输入股票代码和日期范围以在主面板上查看其图表。
我试图更进一步,将应用程序更改为采用 2 个股票代码并将它们绘制在同一个图表上以比较它们随时间变化的应用程序(重叠在同一个图表上)。
我已经将 server.R 修改为:
library(quantmod)
shinyServer(function(input, output) {
dataInput <- reactive({
getSymbols(c(input$symb1, input$symb2), src = "yahoo",
from = input$dates[1],
to = input$dates[2],
auto.assign = TRUE)
})
output$plot <- renderPlot({
chartSeries(dataInput(), theme = chartTheme("white"),
type = "line", log.scale = input$log, TA = NULL)
})
})
我的 uiR 是:
library(shiny)
shinyUI(fluidPage(
titlePanel("StockComp"),
sidebarLayout(
sidebarPanel(
helpText("Select two stocks and a time frame to compare.
Information will be collected from yahoo finance."),
textInput("symb1", "1st Stock Symbol", "GOOG"),
textInput("symb2", "2nd Stock Symbol", "AAPL"),
dateRangeInput("dates",
"Date range",
start = "2012-01-01",
end = as.character(Sys.Date())),
actionButton("get", "Compare Stocks"),
br(),
br(),
checkboxInput("log", "Plot y axis on log scale",
value = FALSE)
),
mainPanel(plotOutput("plot"))
)
))
我得到:
try.xts(x, error = "chartSeries requires an xtsible object") 错误: chartSeries 需要一个 xtsible 对象
我曾尝试将 dataInput 转换为 XTS,但由于我对发生的事情的理解有限,XTS 和响应式(Reactive)似乎给我带来了很多问题。
最佳答案
正如@RHertel 提到的,这不是那么容易做到的。但只是为了说明,我稍微调整了您的 server.R
脚本,这样您就可以看到结果如何。我在脚本中添加了一些注释,以便您了解更改内容。
首先,我将两个数据集分开,因为一旦设置了 auto.assign=TRUE
,您就不能再调用 dataInput
,希望它返回两个数据集。 auto.assign=TRUE
的作用是自动将您的两个数据集分别分配给全局环境。所以在这种情况下有一种不同的方式来调用数据集。为了避免麻烦,将两个数据集分开,这样您就可以设置 auto.assign=FALSE
并从 `dataInput.
接下来,我将这两个数据集存储在一个列表中,以便您稍后可以在脚本中的 output$plot
中分别调用它们。
最后,我添加了 TA
参数,正如@RHertel 上面所解释的那样。我必须使用 paste
功能来自动执行该过程。
如您所见,输出看起来很难看,仍然需要一些清理。但我只是想让你知道它会是什么样子。我不是金融专家,但我几乎从不希望在一张图表上看到多个股票价格,因为它们可能会有很大差异,你可能会得到如下图所示的奇怪图表。为了标准化比例,通常将股票返回绘制在一张图表上,因为即使价格可能不同,返回也有 0-100% 的下限和上限。所以它们会落在相同的尺度上。
library(quantmod)
shinyServer(function(input, output) {
dataInput <- reactive({
data1 <- getSymbols(input$symb1, src = "yahoo", #Seperated the data into two seperate data sets and set auto.assign=FALSE
from = input$dates[1],
to = input$dates[2],
auto.assign = FALSE)
data2 <- getSymbols(input$symb2, src = "yahoo", #Seperated the data into two seperate data sets and set auto.assign=FALSE
from = input$dates[1],
to = input$dates[2],
auto.assign = FALSE)
return (list(data1,data2)) #Stored the data sets in a single list
})
output$plot <- renderPlot({
chartSeries(dataInput()[[1]], TA=paste0("addTA(",input$symb1,",on=1)"),theme = chartTheme("white"), #added the TA argument with the paste helper function
type = "line", log.scale = input$log)
chartSeries(dataInput()[[2]], TA=paste0("addTA(",input$symb2,",on=1)"),theme = chartTheme("white"),
type = "line", log.scale = input$log)
})
})
关于r - 使用 chartSeries 的 react 语句绘制多个符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641704/
我正在使用 quantmod 包中的 chartSeries 函数,我使用的主题是 white.mono。图表非常干净,但我想删除与 y 轴相交的水平灰线。 有人知道怎么关掉这些吗?另外,是否可以关闭
我希望这不是多余的,因为我已经在谷歌上进行了广泛的搜索,但仍然没有找到答案。我正在绘制日内数据并希望在特定时间点放置一条垂直线。似乎我必须使用函数 addTA 但它总是在我的图表下方绘制一些奇怪的空白
我读过很多 R 文档,但我找不到任何我认为可以作为答案的内容。我的额头因撞到 table 而疼痛。 ;) 这是特定于library(quantmod)的,因为这就是我想要学习的内容,但我认为这也是一个
我是 R 的新手,使用您的网站非常有帮助。 不幸的是,我已经为我的代码苦苦挣扎了两天,所以我想要 问几个问题。我一直在尝试创建漂亮的图表以放入 pdf 表,但我对我使用过的所有包裹都没有什么问题 使用
我是 Shiny 的新手,在这里完成了 Shiny 教程: http://shiny.rstudio.com/tutorial/ 在第 6 课中,本教程向我们展示了如何创建一个应用程序,您可以在其中输
是否可以更改 Quantmod 中显示的图上的图例,以便显示值而不是变量名称?例如: library("quantmod") getSymbols("YHOO") temp1 <- 6 temp2 <
我想制作一个像这样的情节 https://stat.ethz.ch/pipermail/r-sig-finance/attachments/20110826/19da3834/attachment.p
这是一个高级问题。 我为 chartSeries quantmod 函数使用我自己的布局,我什至可以创建我自己的 newTA。一切正常。但是…… 我想做却做不到的事: a) 处理 3 个图表中每个图表
使用图表系列时,默认情况下它还会在图的左上角显示最后一个值。有什么办法可以阻止它这样做吗? 使用 addTA 添加新 TA 时,您可以通过设置参数 legend = ""来避免绘图上的最后一个值,但前
我正在使用图表系列,Y 轴被切断。我希望右侧的价格能够保留到小数点后两位。这似乎是边距或字体大小的问题,但经过一番搜索后,我找不到任何地方可以调整这些选项。我说边距是因为图表左侧似乎有足够的空间。 有
Jeff Ryan 的 quantmod 包是对 R 金融世界的杰出贡献。 我喜欢使用 chartSeries() 函数,但是当我试图让它同时显示多个 Pane 时,它不起作用。 par(mfrow=
我一直在为我的项目寻找一个好看的图表可视化解决方案,我终于找到了它 ( https://modernuicharts.codeplex.com )。我也把这个问题发到论坛上了,但是没有人回复... 我
我是一名优秀的程序员,十分优秀!