【发布时间】:2015-11-01 19:03:17
【问题描述】:
在我的应用程序中,用户可以上传任何 .csv 文件并绘制它(我使用在线文件简化了示例,但我意识到示例图毫无用处)。我目前无法根据用户输入绘制星星符号。
我想使用 selectizeInput 以便他们可以选择任意数量的列来绘制光线的长度。星星需要采用列矩阵,但我认为 selectize 作为列表返回。
我在下面的代码中使用的方法显示了我想要的,但它只需要这么多列。我认为有一种简单的方法可以做到这一点,但我对 R 很陌生,搜索时找不到任何有效的方法。
ui.R
shinyUI(pageWithSidebar(
headerPanel("Scatterplot of star symbols"),
sidebarPanel(
selectizeInput("starSpokes", "Select colums for star spoke lengths", c("murder", "Forcible_rate", "Robbery", "aggravated_assult", "burglary"), multiple = TRUE)
),
mainPanel(
plotOutput("graphPlot")
)
))
服务器.R
shinyServer(function(input, output, session) {
crime = read.csv("http://datasets.flowingdata.com/crimeRatesByState2005.tsv", header = TRUE, sep ="\t")
output$graphPlot = renderPlot({
starRays = cbind(crime[[input$starSpokes[1]]], crime[[input$starSpokes[2]]], crime[[input$starSpokes[3]]], crime[[input$starSpokes[4]]])
symbols(x=crime$murder, y=crime$burglary, stars = starRays)
})
})
如果这个问题已经得到解答,我深表歉意,我已经搜索但没有找到任何有效的方法,可能是因为我不知道要搜索的正确术语或错误地实施了他们的方法。
任何帮助将不胜感激,谢谢
【问题讨论】:
标签: r shiny selectize.js