閃亮我已經構建了一個將各種價格數據繪製成圖表的應用程序。我策劃這樣的:ggplot in shiny:geom_line(aes(color = variable)),當變量只有一個因子時失敗
x軸=日期
y軸=價格
- 顏色=變量(在這種情況下,交易模式和型號名稱是
在聽列名爲變量後,我用melt()
)
我在ui中有一個selectInput框中篩選出模型,用戶不想使用fil發生在ccy2.price.melt
。
一切正常,直到我只留下1個模型顯示。那麼下面的錯誤大吵起來:
Error: incorrect number of dimensions
我假設它是要做到:
aes(colour = variable)
是療法解決的辦法,這樣我可以使用此代碼來繪製所需圖表當只繪製一個模型?
model.fixed.colours <- reactive ({ cbind(c("unhedged", "custom", "hedged", "quant"), c(input$unhedged.colour, input$custom.colour, input$hedged.colour, input$quant.colour)) })
ccy2.models.price <- reactive({
models <- c()
if("Unhedged" %in% input$models.for.price.chart) {
models <- append(models, "unhedged")
}
if("Custom" %in% input$models.for.price.chart) {
models <- append(models, "custom")
}
if("Hedged" %in% input$models.for.price.chart) {
models <- append(models, "hedged")
}
if("QUANT" %in% input$models.for.price.chart) {
models <- append(models, "quant")
}
models
})
output$ccy2.price <- renderPlot ({
values <- ccy2.price.melt()[ccy2.price.melt()$variable %in% ccy2.models.price(),]
colour <- model.fixed.colours()[model.fixed.colours()[,1] %in% ccy2.models.price(),]
ggplot(values, aes(x = date, y = value)) +
geom_line(aes(colour = variable), size = 1) +
theme_bw() +
scale_color_manual(values = colour[,2]) +
labs(colour = "") +
xlab("Date") +
ggtitle(paste("Average ", input$ccy2, "/", input$base.ccy, " FX Rate ", sep = "")) +
theme(plot.title = element_text(size=20, face="bold", margin = margin(10, 0, 10, 0))) +
theme(panel.border = element_blank()) +
theme(axis.line.x = element_line(color="black", size = 0.5), axis.line.y = element_line(color="black", size = 0.5)) +
theme(legend.key = element_rect(fill = NULL, color = "white")) +
guides(colour = guide_legend(override.aes = list(size=4))) +
scale_y_continuous("FX Rate", limits = c(min.ccy2.price(),max.ccy2.price()))
})
使用'瀏覽器()''你裏面renderPlot({...})'採取仔細看看在這一點上你的價值和顏色實際上是什麼樣子。 (你將不得不跳過瀏覽器()幾次,直到你的輸入設置爲重現錯誤) –