在 R Shiny 中使用 Plotly 在 Datapoint Click 上打开 Link
Open Link on Datapoint Click with Plotly in R Shiny
我正在使用 R 中的 Plotly 开发一个闪亮的网络应用程序。我已经制作了一个交互式散点图,并使用我想要的信息配置了悬停文本。
我的实现如下:
plot_ly(data=partition,
x=~get(x),
y=~get(y),
color=~SenderS,
colors="Set1",
text=~paste("Link(s): <a href='", partition$Link,"'>", partition$Link, "</a>",
"<br>Date: ", partition$Date,
"<br>Parties: ", partition$SenderS, " to ", partition$Target,
"<br>", x_og, ": ", partition[,x],
"<br>", y_og, ": ", partition[,y])
)%>%
layout(title=~paste(x_og, " vs. ", y_og,
"<br>R=", cor(partition[,x], partition[,y])),
xaxis=list(
title=x_og
),
yaxis=list(
title=y_og
))
在弹出窗口中,我有一个 link,我希望用户能够导航到它。不幸的是,一旦用户将鼠标悬停在当前弹出窗口上,它就会消失,因为他们不再悬停在该点上。
有没有办法配置 Plotly 悬停文本,以便我的用户能够单击 link?或者,也许我可以单击散点图中的一个点打开 link?
这是一个散点图,其中的点在单击时会打开 link:
library(plotly)
library(htmlwidgets) # to use the 'onRender' function
dat <- iris[1:2,]
urls <- c("http://google.com", "https://whosebug.com")
p <- plot_ly(dat, type = "scatter", mode = "markers",
x = ~Sepal.Width, y = ~Sepal.Length,
customdata = urls)
js <- "
function(el, x) {
el.on('plotly_click', function(d) {
var point = d.points[0];
var url = point.data.customdata[point.pointIndex];
window.open(url);
});
}"
p %>% onRender(js)
我正在使用 R 中的 Plotly 开发一个闪亮的网络应用程序。我已经制作了一个交互式散点图,并使用我想要的信息配置了悬停文本。
我的实现如下:
plot_ly(data=partition,
x=~get(x),
y=~get(y),
color=~SenderS,
colors="Set1",
text=~paste("Link(s): <a href='", partition$Link,"'>", partition$Link, "</a>",
"<br>Date: ", partition$Date,
"<br>Parties: ", partition$SenderS, " to ", partition$Target,
"<br>", x_og, ": ", partition[,x],
"<br>", y_og, ": ", partition[,y])
)%>%
layout(title=~paste(x_og, " vs. ", y_og,
"<br>R=", cor(partition[,x], partition[,y])),
xaxis=list(
title=x_og
),
yaxis=list(
title=y_og
))
在弹出窗口中,我有一个 link,我希望用户能够导航到它。不幸的是,一旦用户将鼠标悬停在当前弹出窗口上,它就会消失,因为他们不再悬停在该点上。
有没有办法配置 Plotly 悬停文本,以便我的用户能够单击 link?或者,也许我可以单击散点图中的一个点打开 link?
这是一个散点图,其中的点在单击时会打开 link:
library(plotly)
library(htmlwidgets) # to use the 'onRender' function
dat <- iris[1:2,]
urls <- c("http://google.com", "https://whosebug.com")
p <- plot_ly(dat, type = "scatter", mode = "markers",
x = ~Sepal.Width, y = ~Sepal.Length,
customdata = urls)
js <- "
function(el, x) {
el.on('plotly_click', function(d) {
var point = d.points[0];
var url = point.data.customdata[point.pointIndex];
window.open(url);
});
}"
p %>% onRender(js)