这是我计算 10 只股票的股票波动率的代码:
##------------producing stock volatility plot---------##
p1 = ggplot(Closed_Price_Return, aes(Date, R.BPCL)) + geom_line(color = "blue") +
theme_bw()
p2 = ggplot(Closed_Price_Return, aes(Date, R.TCS)) + geom_line(color = "green") +
theme_bw()
p3 = ggplot(Closed_Price_Return, aes(Date, R.CIPLA)) + geom_line(color = "red") +
theme_bw()
p4 = ggplot(Closed_Price_Return, aes(Date, R.EICHER)) + geom_line(color = "pink") +
theme_bw()
p5 = ggplot(Closed_Price_Return, aes(Date, R.INFY)) + geom_line(color = "yellow") +
theme_bw()
p6 = ggplot(Closed_Price_Return, aes(Date, R.LT)) + geom_line(color = "purple") +
theme_bw()
p7 = ggplot(Closed_Price_Return, aes(Date, R.MARUTI)) + geom_line(color = "orange") +
theme_bw()
p8 = ggplot(Closed_Price_Return, aes(Date, R.RELIANCE)) + geom_line(color = "#7fffd4") +
theme_bw()
p9 = ggplot(Closed_Price_Return, aes(Date, R.SUNPHARMA)) + geom_line(color = "#ff1493") +
theme_bw()
p10 = ggplot(Closed_Price_Return, aes(Date, R.YESBANK)) + geom_line(color = "#ff7256")+
theme_bw()
##------------Converting the ggplots into plotly objects-------##
p1 = ggplotly(p1)
p2 = ggplotly(p2)
p3 = ggplotly(p3)
p4 = ggplotly(p4)
p5 = ggplotly(p5)
p6 = ggplotly(p6)
p7 = ggplotly(p7)
p8 = ggplotly(p8)
p9 = ggplotly(p9)
p10 = ggplotly(p10)
Run Code Online (Sandbox Code Playgroud)
现在我想为所有这些图表生成一个下拉菜单按钮。请告诉我如何在绘图中继续处理按钮代码
一种方法是(如绘图页面上的示例),创建所有跟踪不可见的绘图,然后添加一个切换可见跟踪的下拉列表:
plot_ly(mtcars, x = ~gear) %>%
add_trace(y = ~cyl, name = "cyl", visible = F, color=I("blue")) %>%
add_trace(y = ~hp, name = "hp", visible = F, color=I("green")) %>%
add_trace(y = ~gear, name = "gears", visible = F, color=I("red")) %>%
layout(
yaxis = list(title = "y"),
updatemenus = list(
list(
y = 0.7,
buttons = list(
list(method = "restyle",
args = list("visible", list(TRUE, FALSE, FALSE)),
label = "cyl"),
list(method = "restyle",
args = list("visible", list(FALSE, TRUE, FALSE)),
label = "hp"),
list(method = "restyle",
args = list("visible", list(FALSE, FALSE, TRUE)),
label = "gear")))
)
)
Run Code Online (Sandbox Code Playgroud)
y在你的情况下,只需在s 中定义一个不同的add_trace。TRUE/列表FALSE必须与下拉列表中的痕迹一样长。
对于一个闪亮的小应用程序来说,这也非常简单:
library(shiny)
library(plotly)
p1 <- plot_ly(mtcars, x=~cyl, y=~gear)
p2 <- plot_ly(mtcars, x=~hp, y=~am)
ui <-shinyUI(fluidPage(selectInput("selectPlot", "Choose desired plot", choices=paste0("p", 1:2)), plotlyOutput("plot")))
server <- shinyServer(function(input,output){
output$plot <- renderPlotly({
return(get(input$selectPlot)) # get("p1") from the workspace returns the object p1, which is a plotly object
})
})
shinyApp(ui,server)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4195 次 |
| 最近记录: |