r - plotly_selected 在 R 中不起作用
问题描述
我正在开发一个带有散点图的应用程序,该散点图根据下拉菜单对其点进行着色,然后,我希望当用户选择部分数据时,会更改反应值,以便我可以显示该点的子集一张桌子。
我不知道为什么会收到此警告:
未注册与源 ID 为“plotPCA”相关的“plotly_selected”事件。为了获取此事件数据,请添加 您希望从中获取事件数据
event_register(p, 'plotly_selected')
的绘图 ( )。p
这使我的代码无法正常运行。未捕获在我的 PCA 图(散点图)中选择某些数据的事件。
这是我的代码: 在我的输入中,我有:
...
selectInput('selectColorForPCA', 'Color by', '', selectize=TRUE),
plotlyOutput('plotPCA', width="800px", height="600px"),
...
在我的输出中:
output$plotPCA <- renderPlotly({
dat.tmp <- getPCAdata #this is a reactive value
if(!is.null(dat.tmp)) {
color_group = NULL
if(!is.null(input$selectColorForPCA) & input$selectColorForPCA != "" ){
color_group = ~get(input$selectColorForPCA)
}
plot_ly(dat.tmp,
x = ~PC1,
y = ~PC2,
color = color_group, ## color by selectColorForPCA select input
# colors = "Dark1",
type = 'scatter',
mode = 'markers',
hoverinfo = 'text',
text = ~SampleID,
source='plotPCA'
)
}
})
(这部分只在加载页面时运行,我的意图是当用户在散点图中选择一些点时,它会改变反应值getPCAdata :)
observeEvent(
eventExpr = event_data("plotly_selected", source = "plotPCA"),
handlerExpr = {
event.data <- event_data("plotly_selected", source = "plotPCA") ## should be plotPCA??
if (!is.null(event.data)) {
dat.res <- data[event.data$pointNumber + 1,]
} else {
dat.res <- isolate(getPCAdata())
}
getPCAdata <- dat.res
}
)
请帮忙!
解决方案
推荐阅读
- java - 尝试将子类型数组添加到父类型二维数组中
- vue.js - Vuetify v-select 获取项目索引
- javascript - 按 Enter 提交表单并以模式显示结果而无需重新加载
- scala - 为什么在我使用 SortedSet 时出现“错误:...发散隐式扩展...”?
- vba - 我正在尝试在 VBA 上运行特定代码并看到以下错误 runtime error run time error-2147319765(8002802b)
- java - java文件没有出现在项目中
- reactjs - React app componentDidMount 渲染两次
- c++ - 假设有一个名为 A 的类。传递以下两个对象有什么区别:(a) A obj1 和 (b) A obj1()?
- java - Java - CodeName One:找不到符号文件输入/输出
- amazon-ec2 - 如何在 EC2 引导脚本中安全地传递密码?