【发布时间】:2016-05-16 21:43:16
【问题描述】:
无论实际显示哪些点,我都试图保持绘图的颜色比例和大小比例不变。
在ggplot 中,我可以使用scale_color_gradient(limits=c(0,1)) 之类的参数设置这些常量。但是,我在plot_ly 中找不到并行函数,并且由于其他原因,我无法在此处使用ggplotly()。
我相信eventReactive() 也可以做到这一点,但我无法理解如何使用它。
这是一个最小的示例,绘图颜色和大小不断变化。
library(dplyr)
library(shiny)
library(plotly)
df <- as.data.frame(list("UserID"=c(1,1,1,1,2,2,2,2),
"Category"=c('A','A','B','B','A','A','B','B'),
"Rate"=c(2,3,5,6,8,6,7,1),
"x"=c(1,3,5,7,2,4,6,8),
"y"=c(1,3,5,7,2,4,6,8)
))
ui <- (fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("userInput","Select User", sort(unique(df$UserID)),
selected=1),
checkboxGroupInput("CategoryInput", "Select Category", sort(unique(df$Category)),
selected=c('A','B'))
),
mainPanel(
plotlyOutput("mainPlot")#,
)
)
))
server <- function(input, output, session) {
# filter for both user and category
filteredFull <- reactive({
df %>%
filter(
UserID == input$userInput,
Category %in% input$CategoryInput
)
})
output$mainPlot <- renderPlotly({
plot_ly(data=filteredFull(), x=x, y=y,
color=Rate, size=Rate,
mode='markers')
})
}
shinyApp(ui, server)
是否可以只更新显示的点,而不更新颜色/大小的比例/范围?
【问题讨论】: